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的最低有效字节组成的值。