二进制计算
左移(在二进制的后面加几个0,前面去掉几位)
<<
右移(在二进制的前面正数加0,负数加1,后面去掉几位)
>>
左移一位(左边数 * 2)
<< 1
左移两位(左边数 * 4)
<< 2
右移一位(右边数 / 2)
<< 1
右移两位(右边数 / 4)
<< 2
位运算符 说明
| 按位或
& 按位与
^ 按位异或
<< 按位左移
>> 按位右移
~ 按位取反,反转所有比特
下面分别介绍不同的位运算符的使用方法。
- 位或运算符“|”
位或运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑或运算。若对应的二进制位有一个或两个为 1,则该位的运算结果为 1,否则为 0。 - 位与运算符“&”
位与运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑与运算。若对应的二进制位都为 1,则该位的运算结果为 1,否则为 0。 - 位异或运算符“^”
位异或运算的实质是将参与运算的两个数据按对应的二进制数逐位进行逻辑异或运算。对应的二进制位不同时,对应位的结果才为 1。如果两个对应位都为 0 或者都为 1,则对应位的结果为 0。 - 位左移运算符“<<”
位左移运算符“<<”使指定的二进制值的所有位都左移指定的位数。左移指定位数之后,左边高位的数值将被移出并丢弃,右边低位空出的位置用 0 补齐。
语法格式为表达式<<n,这里 n 指定值要移位的位数。
5) 位右移运算符“>>”
位右移运算符“>>”使指定的二进制值的所有位都右移指定的位数。右移指定位数之后,右边高位的数值将被移出并丢弃,左边低位空出的位置用 0 补齐。
语法格式为表达式>>n,这里 n 指定值要移位的位数。
6) 位取反运算符“~”
位取反运算符的实质是将参与运算的数据按对应的二进制数逐位反转,即 1 取反后变 0,0 取反后变为 1。