位操作符
位操作符 | 名称 |
---|---|
& | 与 |
| | 或 |
^ | 异或 |
<< | 左移 |
>> | 右移 |
~ | 取反 |
& 与
0 & 0 = 0;
0 & 1 = 0;
1 & 0 = 0;
1 & 1 = 1;
同一二进制位上的数字都是1的话,&的结果为1,否则为0.
| 或
0 | 0 = 0;
0 | 1 = 1;
1 | 0 = 1;
1 | 1 = 1;
同一二进制位上的数字只要有一个是1的话,|的结果为1,否则为0.
^ 异或
0 ^ 0 = 0;
0 ^ 1 = 1;
1 ^ 0 = 1;
1 ^ 1 = 0;
同一二进制位上的数字不同的话,^的结果为1,否则为0.
~ 取反
对二进取反的话,1变0, 0变1
🌰
1.定义一个参数。
int hardwareControl
00001 辅助灯开关 【第一位】
00010 倒计时开关 【第二位】
00100 循环播放开关 【第三位】
01000 静音开关 【第四位】
10000 其他音开关 【第五位】
2.获取对应的位的状态
!!(hardwareControl & (1 << index));
【获取第一位】
!!(hardwareControl & (1 << 0));
【获取第二位】
!!(hardwareControl & (1 << 1));
【获取第三位】
!!(hardwareControl & (1 << 2));
3.修改对应的位
if(on){ //如果是要设置为1
hardwareControl |= (1 << index);
else{ //如果是要设置为0
hardwareControl &= ~(1 << index);
}
【设置第一位:开】
hardwareControl |= (1 << 0);
【设置第一位:关】
hardwareControl &= ~(1 << 0);