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("
");
11 
12     flag &= 0xff;  //掩码
13 
14     print(flag);
15     printf("
");
16 
17     flag |= 0x07;  //打开位,将对应位置1,而其余位不变
18 
19     print(flag);
20     printf("
");
21 
22     flag &= ~0x07;  //关闭位,将对应位置零,其余位不变
23 
24     print(flag);
25     printf("
");
26 
27     flag ^= 0x7f;  //转置位
28 
29     print(flag);
30     printf("
");
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 }

运行结果

原文地址:https://www.cnblogs.com/losing-1216/p/5091669.html