关于Java运算符的含义:左移、右移、无符号右移、位与、位或、位非、位异或

一、左移( << )

形式:a<<b
含义:将a的数值在二进制下向左移动b个位置
示例:5<<2

//原数值
0000 0101
//左移后
0001 0100

二、右移( >> )

形式:a>>b
含义:将a的数值在二进制下向右移动b个位置,左边的用原有标志位补充
示例:5>>2

//原数值
0000 0101
//左移后
0000 0001

三、无符号右移( >>> )

形式:a>>>b
含义:将a的数值在二进制下向右移动b个位置(高位空出的部分总是用0进行补位)

四、位与( & )

形式:a&b
含义:将a和b的数值在二进制下逐位比较,相同取1,不同取0,得到一个新的与原a/b二进制位数相同的数值

五、位或( | )

形式:a|b
含义:将a和b的数值在二进制下逐位比较,全都为0则新数字对应位数取0,否则取1。

六、位异或( ^ )

形式:a^b
含义:将a和b的数值在二进制下逐位比较,相同取0,不同取1,得到一个新的与原a/b二进制位数相同的数值

七、位非( ~ )

形式:~a
含义:将a在二进制下的每个数字取0/1的反值,遇0取1,遇1取0,得到新的数字。

猜你喜欢

转载自blog.csdn.net/tiansheshouzuo/article/details/85851845