Linux-c对一个十六进制数的某一位取反

 1 enum SWITCH_FLAG {
 2   SWITCH_ALL_FLAG       = 0,
 3   SWITCH_WEB_FLAG       = 1,
 4   ……
 5 }
 6 
 7 unsigned int switch_by_bit_value = 0x7FFFFFFF;
 8 
 9 void switch_set_bit(int*a,int position,int flg)
10 {
11     int b=1<<position;
12     if(flg==0){
13         *a&=~b;
14     }
15     else{
16         *a|=b;
17     }
18 }
19 
20 switch_set_bit(&switch_by_bit_value,SWITCH_WEB_FLAG,1);
21 switch_set_bit(&switch_by_bit_value,SWITCH_WEB_FLAG,0);

 

posted @ 2018-04-24 16:29  老鼠扛刀,满街找猫  阅读(762)  评论(0编辑  收藏  举报