Java基础: 位运算 << >> >>>

来源:互联网 发布:新手模拟钢琴软件 编辑:程序博客网 时间:2024/05/29 07:45

a<<b"是位运算符当中的"左移"运算,其中a是左移的数,b是左移的位。

如:2<<2的运算过程:

需要先把要移动的数转化为二进制 2的二进制如下

0000 0010

那么左移2位得到

0000 1000

即得到结果为8

因为二进制各个位上的数值为

128 64 32 16 8 4 2 1

所以得出:

左移一位相当乘以2,左移n位相当于乘以2n次方。

再比如:

2<<3

二进制

0000 0010

左移动三位

0001 0000

结果为16 2*2^3 = 16

 

同理得出 “右移”运算的规律 >>

右移一位相当于整除2,右移n位相当于乘以2n次方。

 

上面这两个是不带符号的移位运算。

还有一个位运算:无符号右移运算符

无符号右移(注意:并没有无符号左移:>>>无符号右移操作是将运算数的二进制码整体右移(注意:是整体右移动)指定位数,右移之后的空位用全都用0填充。

无符号右移不管正负号,移完后全都补0,这时候在把移完后的2进制转换为10进制,即为结果,这个数很大啊

例如:

2 >>> 3

0000 0010

0000 0000 结果为0

0 0
原创粉丝点击