美文网首页
[java基础] java 左移和右移

[java基础] java 左移和右移

作者: 抬头看月亮 | 来源:发表于2017-12-05 15:40 被阅读0次

    今天搜到一个比较好用的在线编译器,希望和大家分享。

    除了java还有c++....,地址是http://www.tutorialspoint.com/compile_java_online.php

    另外今天再次复习了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 虚拟机屏蔽了大端小端的问题,内部都是小端。

    相关文章

      网友评论

          本文标题:[java基础] java 左移和右移

          本文链接:https://www.haomeiwen.com/subject/twjcixtx.html