两个二进制数相与(逻辑与运算)是按位比较两个数的每一位,只有当两个对应位都为1时,结果位才为1,否则为0。以下是具体说明:
一、逐位相与规则
运算规则 - 1 & 1 = 1
- 1 & 0 = 0
- 0 & 1 = 0
- 0 & 0 = 0
(与十进制逻辑运算规则一致)
示例
计算 `1010` 和 `1100` 的逐位与运算:
```
1010
& 1100
----
1000
```
结果为 `1000`,其中只有第1位和第3位均为1时结果位为1。
二、应用场景
逻辑判断
在编程中常用 `&` 运算符判断两个条件是否同时满足,例如:
```c
if (a > 0 && b < 10) {
// 两个条件都为真时执行
}
```
这里 `a > 0` 和 `b < 10` 的结果会被转换为二进制后进行逐位与运算。
位掩码操作
用于提取或设置特定位,例如:
- 提取第3位:`value & 0b100`
- 设置第2位为1:`value | 0b010`
(注意:位操作需注意数据类型对齐)
三、注意事项
进位处理: 逐位与运算不涉及进位,仅根据当前位判断结果。 数据类型
通过逐位比较,逐位与运算能够高效处理多条件逻辑判断和数据筛选任务。