//将特定位置1
//参数1 数值 参数2 要置1的位
void set_biti(int *num, int pos) {
*num |= (1 << pos);
}
//将特定位置0
//参数1 数值 参数2 要置0的位
void clear_biti(int *num, int pos) {
*num &= ~(1 << pos);
}
#include
void set_biti(int *num, int pos) {
*num |= (1 << pos);
}
void clear_biti(int *num, int pos) {
*num &= ~(1 << pos);
}
void main(){
int a = 0xA3E5;
int b = 0x75CB;
set_biti(&a,0);
set_biti(&a,1);
set_biti(&a,7);
set_biti(&a,10);
clear_biti(&b,2);
clear_biti(&b,3);
clear_biti(&b,4);
clear_biti(&b,10);
clear_biti(&b,13);
printf("%04x %04x\n",a,b);
}
gcc t.c
a
a7e7 51c3
A3E5 1010001111100101
A7E7 1010011111100111
75CB 0111010111001011
51C3 0101000111000011