1:四种布尔运算&,|,^,~
&:相当于&&,表示”与”运算。一假则假。
|:相当于||,表示”或”运算。一真则真。
^:表示”抑或”,相同状态则为假。
~:表示”非”,相当于!。
运算 | 结果 |
---|---|
a | [01101001] |
b | [01010101] |
~a | [10010110] |
~b | [10101010] |
a&b | [01000001] |
a|b | [01111101] |
a^b | [00111100] |
布尔运算的简洁之处在于我们用位
来表示状态。而且有关这几种运算c
和c++
都是支持的。
2:布尔运算和逻辑运算之间的关系
布尔运算 | 逻辑运算 |
---|---|
~ | ! |
& | && |
| | || |
3:移位操作
左移:x << k 表示将x左移k位,对于原来的x,低位补k个0,相应的高位自动溢出。
右移
- 逻辑右移:低位溢出,高位补0
- 算术右移:低位溢出,高位补最高有效位,即x(n-1)。
看个例子:
操作 | 值 |
---|---|
x | [11100011] |
x<<4 | [00110000] |
x>>4(逻辑) | [00001110] |
x>>4(算术) | [11111110] |