Rumah  >  Artikel  >  Java  >  java 左移和右移

java 左移和右移

伊谢尔伦
伊谢尔伦asal
2016-11-30 09:40:101816semak imbas

今天复习了java左移和右移,这里针对负数举个例子:

正数和负数在java中是以补码的形式表示

例如-2 在计算机中表示为 11111111 11111111 11111111 11111110

 

1.左移

-2<<2 即-2左移2位的结果是:11111111 11111111 11111111 11111000 (低位补0)

上面是补码,最高位为1表明这是负数,负数的补码是对正数的原码进行:“最高位为1,其余各位取反,最后加1”得到的。

所以反推一下,就可以知道 -2<<2的结果实际上表示的数是10000000 00000000 00000000 00001000 (-8)

2.右移

高位是1则补1,高位是0则补0

-2>>2 : 11111111 11111111 11111111 11111111

            10000000 00000000 00000000 00000001   (-1) 

 

3.移位操作符可以和"="联合起来用

a<<=2表示a左移2位后的值再赋给a

 

4.补充一下:java 虚拟机屏蔽了大端小端的问题,内部都是小端。


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:java开发命名规则Artikel seterusnya:java中的反射机制