& 在 C 语言中是一个按位 AND 运算符,用于逐位比较两个操作数,若对应位均为 1,则结果位为 1,否则为 0。具体应用场景包括:测试特定位是否为 1、设置特定位为 0、掩码特定位。

什么是 & 在 C 语言中
& 在 C 语言中是一个按位 AND 运算符。它将两个操作数的每个位进行按位比较,如果两个位都是 1,则结果为 1,否则为 0。
按位 AND 运算符的工作原理
例如,假设我们有两个 8 位整数 a 和 b:
立即学习“C语言免费学习笔记(深入)”;
<code>a = 0b10101101 b = 0b01101011</code>
当我们对 a 和 b 进行按位 AND 运算时,我们比较每个位:
<code>1 & 0 = 0 0 & 1 = 0 1 & 1 = 1 0 & 0 = 0 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1</code>
因此,a & b 的结果为:
<code>0b00101001</code>
使用按位 AND 运算符的场景
按位 AND 运算符在 C 语言中有多种应用,包括:
- 测试特定位是否为 1:如果
a & (1 << n)为 1,则表示a的第n位为 1。 - 设置特定位为 0:如果用
a & ~(1 << n),则表示将a的第n位清零。 - 掩码特定位:如果用
a & MASK,其中MASK是一个掩码,则表示将a中与MASK位不同的位清零。











