首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言位運算技巧:提取整數第 4 至 7 位(從右向左)

     編輯:關於C語言

問題

取無符號整數 a 從右端起第 4~7 位(即位 3~6,0-based)。

三步法

  1. 右移 4 位:b = a >> 4; 目標位移至最低 4 位。
  2. 構造掩碼:c = ~(~0 << 4); 即 0xF(低 4 位全 1)。
  3. 按位與:d = b & c; 保留目標 4 位,其餘清零。

完整代碼

#include <stdio.h>

int main() {
    unsigned a, b, c, d;
    printf("輸入八進制整數: ");
    scanf("%o", &a);
    b = a >> 4;
    c = ~(~0u << 4); // 0xF
    d = b & c;
    printf("原值: %o\n結果: %o\n", a, d);
    return 0;
}

關鍵點

  • ~0 全 1,左移 4 位得高位全 1 低 4 位 0,再取反得低 4 位全 1。
  • 使用 unsigned 避免符號位擴展影響。
  • 八進制輸入輸出方便觀察位模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved