C语言位操作
1 #include <stdio.h> 2 3 void print(int); 4 5 int main(void) 6 { 7 int flag = 0xffe4; 8 9 print(flag); 10 printf("\n"); 11 12 flag &= 0xff; //掩码 13 14 print(flag); 15 printf("\n"); 16 17 flag |= 0x07; //打开位,将对应位置1,而其余位不变 18 19 print(flag); 20 printf("\n"); 21 22 flag &= ~0x07; //关闭位,将对应位置零,其余位不变 23 24 print(flag); 25 printf("\n"); 26 27 flag ^= 0x7f; //转置位 28 29 print(flag); 30 printf("\n"); 31 32 if((flag & 0x9f) == 0x9f) //查看某些位是否为1 33 puts("wow!"); 34 35 return 0; 36 } 37 38 void print(int flag) //以二进制显示 39 { 40 int bit; 41 if(flag != 0) 42 { 43 bit = flag%2; 44 flag /= 2; 45 print(flag); 46 printf("%d",bit); 47 } 48 }
运行结果