位运算之左移右移运算之详解

左移操作(<<)

规则:
左移几位,整体向左移动几位,右边空出的位用0填补,高位左移溢出则舍弃该高位。总结:左移几位,相当于原数*2的N次方;
例子:2021<<3;
首先将2021转为2进制为11111100101;然后将11111100101整体左移3位,得到结果为11111100101000;再将该结果转为二进制,得到转换后的结果为16168;
JS代码实现;

var n = 2021;
var a = n.toString(2); // 11111100101
var s = "11111100101000"; // 上面数字左移3位的结果 
var result = parseInt(s,2); // 得到 16168

右移操作(>>)

左边空出的位用0或者1填补。正数用0填补,负数用1填补。注:不同的环境填补方式可能不同;低位右移溢出则舍弃该位。
例子:2021>>3;
首先将2021转为2进制为11111100101;然后将11111100101整体右移3位,得到结果为00011111100;再将该结果转为二进制,得到转换后的结果为252;
JS代码实现;

var n = 2021;
var a = n.toString(2); // 11111100101
var s = "00011111100"; // 上面数字右移3位的结果 
var result = parseInt(s,2); // 得到 252
posted @ 2021-11-09 17:09  Jone_chen  阅读(1464)  评论(0编辑  收藏  举报