本實例演示如何使用位運算提取一個無符號整數從右端(低位)開始的第 4 到第 7 位(共 4 位)。
b = a >> 4,目標位移至最低 4 位。c = ~(~0 << 4) 得到低 4 位為 1、其餘為 0 的數(即 0xF)。d = b & c 保留低 4 位,其餘清零。// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
int main() {
unsigned a, b, c, d;
printf("請輸入整數:\n");
scanf("%o", &a); // 八進制輸入
b = a >> 4;
c = ~(~0 << 4);
d = b & c;
printf("%o\n%o\n", a, d);
return 0;
}
請輸入整數:
36
36
1
輸入八進制 36(二進制 011 110),右移 4 位得 0,低 4 位為 1,輸出 1。