js的左移右移计算

来源:互联网 发布:皇室战争女巫升级数据 编辑:程序博客网 时间:2024/04/30 09:31

转载自:http://blog.csdn.net/iceryan/article/details/8550875


正数的左移和右移

以3为例

3的二进制为

00000011

右移2位的时候将最右的11去掉左边补00结果为:00000000  --- >十进是中的0

左移2位的时候将最左的00去掉右边补00结果为:00001100 ----->十进是中的12


对于-3来说,负数的都是以补码的形式存在于计算器中

补码  = 反码+1

-3的二进制为

100000011

取反的补码为(符号为不变) 

111111100

再加1,为补码11111101


右移2位的时候将最右的01去掉左边补11结果为:11111111 ---> 为补码,要求原码

还需要-1 :11111110 ,再取反(符号位不动) :10000001:------>十进制中的-1,所以-3的右移2位为十进制中的-1


左移2位的时候将最左边11去掉右边补00结果为:11110100 ----> 为补码,要求原码

还需要-1:11110011,再取反(符号位不动):10001100:----->十进制中的-12,所以-3的左移2位为十进制中的-12


0 0