详细介绍参考——。
之所以会把位运算符重新重视,是因为前一段时间在研究求质数的算法的时候,人家用筛法加二进制保存true / false大大节约了时间和空间。原文传送门: 10)。
首先列举一下这几个运算符:
- 按位取反:~
- 按位与:&
- 按位或:|
- 按位异或:^ 当只有一个数位存放的是 1 时,它才返回 1
- 左移运算:<< 符号位不变
- 有符号右移:>>
- 无符号右移:>>>
- 判断奇偶数:n & 1 === 0
- Math.floor:n | 0 / ~~n / n >>> 0 / n >> 0 / n << 0
- 0和1之间的转换:n ^= 1(n的初值为0或1,然后每次执行,n会变化)
- 判断正负:n === (n >>> 0)
- 有符号转无符号:n >>> 0
- *2 /2 --> 左移 右移
- 两数字换位置:num1 ^= num2,num2 ^= num1,num1 ^= num2