标签:zh-cn ISE 32位 tar strong 符号 形式 opera col
推荐阅读:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
<< 左移
二进制数左移n位, 就等价于乘以2^n。
例如:14 << 2的值为56(可以算成14*2^2)
>> 右移
二进制数右移n位, 就等价于除以2^n。
例如:16 >> 2的值为4 (可以算成16 / 2^2)
>>> 无符号右移
先把符号位置0,然后二进制数右移n位。
导致 -1 >>> 0 === 2^32 - 1,详细具体原因可以看我另外一篇博文。
~ 按位 否
~1 就是1的补码全部取反,111...110 和 -2 的补码一致
& 按位与
0 & 0=0; 0 & 1=0; 1 & 0=0; 1 & 1=1
| 按位或
0 & 0=0; 0 & 1=1; 1 & 0=1; 1 & 1=1
^ 异或
0^0=0; 0^1=1; 1^0=1; 1^1=0;
关于负数二进制的基础知识:
负数在计算机内部是用补码表示的
例如 -1
1的原码是 0000 0001(js的number是64位双精度浮点数,在按位操作时会转化成32位)
则-1的反码是 1111 1110
补码是 1111 1111
标签:zh-cn ISE 32位 tar strong 符号 形式 opera col
原文地址:https://www.cnblogs.com/amiezhang/p/6731118.html