含义:
取得被运算的两个值同为 1 的位。
运算方式:
两个位都为1 时,结果才为 1 。
示例:
0 0 1 0 0 0 1 1 --> 0x23(Hex) --> 35(Dec)
& 0 1 0 1 0 0 1 0 --> 0x52(Hex) --> 82(Dec)
------------------
0 0 0 0 0 0 1 0 --> 0x02(Hex) --> 2(Dec)
以上示例中,取得了值 0x23 和 0x52 同为 1 的位。
含义:
获取两个值都为 0 的位。
或者
获取两个值至少存在一个 1 的位。
运算方式:
两个位都为 0 时,结果才为 0 。
示例:
0 0 1 0 0 0 1 1
| 0 1 0 1 0 0 1 0
------------------
0 1 1 1 0 0 1 1
含义:
获取两个值的异同情况。
运算方式:
相同得 0 ,相异得 1 。
示例:
0 0 1 0 0 0 1 1
^ 0 1 0 1 0 0 1 0
------------------
0 1 1 1 0 0 0 1
运算方式:
0 变 1 ,1 变 0。
示例:
^ 0 0 1 0 0 0 1 1
------------------
1 1 0 1 1 1 0 0
运算方式:
各二进制位全部左移若干位,高位丢弃,低位补零。
示例:
1 << 0 0 1 0 0 0 1 1
---------------------
0 1 0 0 0 1 1 0
以上示例为:将值左移 1 位。
运算方式:
各二进制位全部右移若干位