移位运算就是对二进制进行有规律低移位
一、 << (左移运算符)
- 在移位运算过程中,符号位始终保持不变
- 如果右侧空出位置,则自动填充为 0;超出 32 位的值,则自动丢弃
console.log(5 << 2); // 20
演算过程:
其实来说,左移运算符就是*2的n次方
上面的例子可以换算为:
5 << 2 = 5 * 2^2 = 20
8 << 5 = 5* 2^5 = 256
二、 >> (右移运算符)
- 有符号右移位运算
- 把 32 位数字中的所有有效位整体右移,再使用符号位的值填充空位
- 移动过程中超出的值将被丢弃
console.log(1000 >> 8); // 3
演算过程:
其实来说,右移运算符就是/2的n次方,四舍五入
上面的例子可以换算为:
1000 >> 8 = 1000 / 2^8 = 3