51中的变量是可以定义为一位的,这种变量可以直接对位进行操作
32中的变量或是上位机程序中的变量,都是按字节计算的,也就是8位,操作每一位时,可以通过右移的操作进行修改
比如
i|=(1<<5);也就是把i的第5位置1了
C语言中的按位操作主要有:与(&)或(|)异或(^)取反(~)左移(<<)右移(>>)。
运用位操作运算符就好啦。
int i=100;
i=i>>2;
int b=i | 0x0f;
int c=~i;
int d=i & 0f0;
位操作必须使用位操作运算符,最基础的 | & ~ ^ << >>
还可以配合赋值使用比如 |= &=
按位操作的话,就是对变量进行位或与位与的操作。
还有一种是定义一个结构体,结构体中的每个变量占用一位再把结构与一个共同体定义在一起就可以方便操作每一位了
在C语言中可以使用运算符 << 、 >>、 |、 &来修改某个位的值,或是与某特定的数据进行运算,
比如与0xfe相与,就是把最低位置0
如果要修改其中一个位,将它置1,那可以用|(1<<n)n代表要修改的位
同样,如果要修改其中一个位置0,可以用&=~(1<<n)
原理就是位与0,一定等于0,位或1,一定等于1