Java和Javascript中位移运算

参考:https://www.cnblogs.com/thtlovelife/p/8664404.html

           https://blog.csdn.net/u010267996/article/details/79198279

注意js中数据是一个32位的数,其中第32位为符号位,正数为0,负数为1

(1) 带符号正数/负数的左移(<<)和带符号正数的右移(>>):符号位不变,右/左边低/高位补0,共计32位;

(2) 带符号负数的右移(>>):符号位不变,其它所有位求反加1,然后向右移位,再符号还是不变,其它所有位再次求反加1;

(3) 不带符号正数的右移(>>>):符号位不要,其它所有位求反再加1,然后位移;

举例1:

举例2:

      -100无符号右移4位。

      -100原码:   10000000    00000000    00000000   01100100

      -100补码:    保证符号位不变,其余位置取反加1

                           11111111    11111111    11111111   10011100

     无符号右移4位   :   在高位补0

                           00001111    11111111    11111111    11111001

      即为所求:268435449

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容