java移位操作

来源:互联网 发布:ae mac 中文破解版 编辑:程序博客网 时间:2024/06/06 02:10

Tips:主要讲解java的左移右移操作,以及负数的移位操作

1. java对移位的运算进行了优化处理。

将 a<<b    a>>b    a左移右移b位的处理优化为:

a<<(b%32)      a>>(b%32);

例题:

int a=1;

a>>32   等价于a>>(32%32) 即:a>>0  所以还是a本身

2.java对负数的移位操作

(1)负数在计算机中以补码的形式保存。补码:将该数的绝对值,按位取反,再加1.

(2)第二步移位操作:移位操作与正数的移位操作一样。(只是数值是补码形式进行即可)

例题:-1>>1 

-1在 内存中ff ff ff ff 然后右移时左边补1,所以还是ffffffff  还是-1;

左移时右补0;右移时左补1;

0 0