C 语言 与、或 操作

按位与 & and

两都为 1 才为 1

1
2
3
0 & 0 = 0;
0 & 1 = 0;
1 & 1 = 1;

寄存器特定位清零使用 & 与 and。

因为要两个 1 才为 1,所以可以使用 0 来清零特定的 bit 位

1
2
// 使用 & 和 0 将 bit8 - bit15 清零而其他位不变
reg &= 0xFFFF00FF;

逻辑与 &&

两个都为真是才为真

按位或 | or

只要有一个为 1,就为 1

1
2
3
0 | 0 = 0;
0 | 1 = 1;
1 | 1 = 1;

寄存器特定位置 1,用 | 或。

因为只要有一个为 1 就是 1,可以使用 1 来将特定为置 1

逻辑或 ||

只要有一个条件为真,结果就为真