一、按位与(&)
1、运算规则
0&0=0;
0&1=0;
1&0=0;
1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
2、运算用途
- 清零。(与对应位置0进行与运算)
例如: 0110 0011 & 1111 0000 = 0110 0000 // 将低4位清零
- 保留指定位(与对应位置1进行与运算)
例如: 0110 0011 & 0000 1111 = 0000 0011 // 取低4位
二、按位或(|)
1、运算规则
0|0=0;
0|1=1;
1|0=1;
1|1=1;
即:参加运算的两个对象只要有一个为1,其值为1。
2、运算用途
- 对应位置1。(与对应位置1进行或运算)
例如: 0110 0011 | 0000 1111 = 0110 1111 // 将低4位置1
- 保留指定位(与对应位置0进行或运算)
例如: 0110 0011 & 0000 0000 = 0110 0011 // 取低4位
三、按位异或(^)
1、运算规则
0^0=0;
0^1=1;
1^0=1;
1^1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
2、运算用途
- 对应位翻转。(与对应位置1进行异或运算)
例如: 0110 0011 ^ 0000 1111 = 0110 1100 // 将低4位翻转
- 保留指定位。(与对应位置0进行异或运算)
例如: 0110 0011 ^ 0000 0000 = 0110 0011 // 保留低4位