1. 按位与 &
概念:两个整数的二进制位,对位都为1,该位为1,否则为0
举例:12 & 13
12 转为二进制为 1100
13 转为二进制为 1101
按位与的结果为 1100
=> 12
2. 按位或 |
概念:两个整数的二进制位,对位只要有一个为1,该位为1,否则为0
举例:12 & 13
12 转为二进制为 1100
13 转为二进制为 1101
按位或的结果为 1101
=> 13
3. 按位异或 ^
概念:两个整数的二进制位,对位只能有一个为1,该位为1,否则为0
举例:12 & 13
12 转为二进制为 1100
13 转为二进制为 1101
按位异或的结果为 0001
=> 1
4. 按位非 ~
概念:对整数的所有二进制位取反
举例:12
12 转为二进制为 1100
按位非的结果为 0011
=> 3
5. 按位左移 <<
概念:整数的二进制位整体左移一位,最后的空缺位置补0,移动一位相当于乘一次2
举例:12
12 转为二进制为 1100
12 << 1
的结果为 11000
=> 24
6. 按位右移 >>
概念:整数的二进制位整体右移一位,左边空缺位补 0 或 1 取决于原运算数的符号位。如果运算数是正的,运算结果最高位补 0;如果运算数是负的,运算结果最高位补 1。
特点:由于最后一位会直接抛弃掉,所以不管是1还是0,都会向下取整,所以 13 >> 1
相当于 Math.floor(13 / 2)
举例:13
13 转为二进制为 1101
13 >> 1
的结果为 0110
=> 6
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。