C中有按位逻辑运算符:按位取反、按位与、按位或、按位异或。这4个运算符可以用于整型,包括char类型。按位操作针对每一个位进行操作,不影响左右两边的位。4个运算符的作用总结如下:
一、按位取反
1.运算符:~
2.作用:把1变为0,把0变为1。
3.示例
表达式~(10011010)
结果值 (01100101)
二、按位与
1.运算符:&
2.作用:按位比较两个运算对象,生成新值
(1)对于每个位:只有两个运算对象相应的位都是1,结果才是1
(2)对于真假:只有两个位都是真,结果才是真
3.示例
表达式:(10110110) & (11001100)
结果值:(10000100)
4.按位与和赋值结合运算符&=
val &= 100;等价val = val & 100;
三、按位或
1.运算符:|
2.作用:按位比较两个运算对象,生成新值
(1)对于每个位:如果两个运算对象中的相应的位为1(一个位为1或两个位为1),则结果为1
(2)对于真假:如果两个运算对象的相应一个位为真或两个位都为真,则结果为真
3.示例
表达式:(10110110) | (11001100)
结果值:(11111110)
4.按位或和赋值运算符结合|=
val |= 100;等价val = val | 100;
四、按位异或
1.运算符:^
2.作用:按位比较两个运算对象
(1)对于每个位:如果两个运算对象中相应的位一个为1(不是两个为1),结果为1
(2)对于真假:如果两个运算对象中的一个位为真且不是两个位同为1,则结果为真
3.示例
表达式:(10110110) ^ (11001100)
结果值:(01111010)
4.按位异或和赋值运算符结合^=
val ^=100;等价val = val ^ 100;