JS位运算符应用场景

148 阅读1分钟

位与(&)

真真为真,其余为假

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

无符号右移(>>>)

符号为也跟着一起移动,这样,无符号右移会把负数的二进制当成整数的二进制码