# 什么是位运算符

直接对整数的二进制位进行操作的运算方式

它不是从“数值”的角度去计算,而是从“每一位是0还是1”的角度去处理

# 按位与(&)

两个位都为1时结果才为1

  • 1&1=1
  • 1&0=0
  • 0&1=0
  • 0&0=0

# 按位或(|)

两个位有任意位为1结果才为1

  • 1|1=1
  • 1|0=1
  • 0|1=1
  • 0|0=0

# 按位异或(^)

两个位不同时结果为1

  • 1^1=0
  • 1^0=1
  • 0^1=1
  • 0^|0=0

# 按位取反(~)

将每个位取反(0变1,1变0)

~1 = 0

~0 = 1

# 左移(<<)

向左移动n位,相当于乘以2ⁿ

4 << 3

4的二进制表示0100

左移3位,变成100000,代表10进制的32

即 4×2³ = 4×8=32

# 右移(>>)

向右移动n位,相当于除以2ⁿ(取整)

100 << 3

100的二进制01100100

右移2位,变成1100,代表10进制的12

即100 ÷ 2³ = 100 ÷ 8 = 12余4,取整,得12

上次更新: 2025/07/17 09:28:54