C中的位级运算

C语言支持按位布尔运算,包括:

  • & 与 (AND),
  • | 或 (OR),
  • ~ 取反 (NOT),
  • ^ 异或 (EXCLUSIVE-OR)。

有以下常用结论:

  • 对于任意向量a,有a ^ a = 0.
  • 异或(^) 是可交换的和可结合的。a ^ (a ^ b) = (a ^ b) ^ b = b; b ^ (a ^ b) = (b ^ b) ^ a = a.
  • 0 ^ A = A (0 异或任何数 A 结果还是 A).

位级运算常见用法:实现掩码运算
这里掩码指位模式,表示从一个字中选出的位的集合。比如掩码 0xFF(最低的8位为1)表示一个字的低位字节。x = 0x89ABCDEF, 那么 x & 0xFF = 0x000000EF,生成由x的最低有效字节组成的值。

你可能感兴趣的:(深入理解计算机系统,C和C++)