Linux-c negates a digit of a hexadecimal number

 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);

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324826505&siteId=291194637