JavaSE---位运算符

1、Java支持的位运算符有7个:

  &:按位与  【2个相同取相同、2个不同取0】

  |:按位或  【2个相同取相同、2个不同取1】

  ~:按位非  

  ^:按位异或 【2个相同取0、2个不同取1】

  <<:左位移运算符  将二进制码整体左移指定位数,左移后空出来的位以0补充

  >>:右位移运算符  将第一个操作数的二进制码向右移指定位数,左边空出的以0补充(如果原来的操作数为正数,左边以0补充;如果是负数,左边以1补充)

  >>>:无符号右位移运算符  将第一个操作数的二进制码向右移指定位数,左边空的以0补充

2、

3、案例:

  1.1  按位与:

    5&9

     0101  ---5

   & 1001   ---9

    0001   ---1     

  1.2   按位或:

    5|9

    0101  ---5

   | 1001  ---9

    1101  ---13

4、二进制数(计算机采用二进制的补码进行计算)

    1、最高位为符号位,0表示正、1表示负,其余位表示数值大小

    2、原码、反码、补码

      1.1  正数的原码、反码、补码  都一样;

      1.2  负数的反码:

            最高位不变、其余按位取反;     eg: 原码为:10100000  反码为:11011111

         负数的补码:

            最高位不变、其余按位取反,再+1   eg: 第一步,原码为:10100000;第二步,最高位不变取反:11011111;第三步,加一得补码:11100000

          

posted on 2019-02-14 17:48  anpeiyong  阅读(173)  评论(0编辑  收藏  举报

导航