位与(&)
真真为真,其余为假
n&1 用来判断奇数偶数 真为奇数,假为偶数
位或(|)
假假为假,其余为真
13.43|0 取整
位非(~)
真为假,假为真
~~13.32 取整
~-1 为0
异或(^)
相同为假,不同为真
100^100 为0 两个相同的数进行按位异或等于0
可以用于交换两个整数的值,不推荐
var a = 3, b = 5;
a ^= b;
b ^= a;
a ^= b;
//等同于
[a,b]=[b,a]
有符号左移(<<)
首位符号为不动,把32位二进制数字整体往左边移动指定位数,左边超出部分被舍去,右边补0
9>>n 等同于 9*2**n
有符号右移(>>)
首位符号为不动,把32位二进制数字整体往右边移动指定位数,右边超出部分被舍去,左边补0
9>>n 等同于 9/(2**n)|0
无符号右移(>>>)
符号为也跟着一起移动,这样,无符号右移会把负数的二进制当成整数的二进制码