C语言中的位操作与高级数据类型
1. 位操作基础
1.1 按位与(&)
按位与操作符用于对两个操作数的对应位进行逻辑与运算。当两个对应位都为 1 时,结果位才为 1,否则为 0。例如,在判断一个数是偶数还是奇数时,可以使用按位与操作符:
int even(const int value)
{
return ((value & 1) == 0);
}
这里通过将数字与 1 进行按位与操作,提取最后一位。如果结果为 0,则该数为偶数;否则为奇数。不过,通常使用取模运算符(%)来判断奇偶性是更好的编程实践。
1.2 按位或(|)
按位或操作符对两个操作数的对应位进行逻辑或运算。只要两个对应位中有一个为 1,结果位就为 1。其真值表如下:
| Bit1 | Bit2 | Bit1 | Bit2 |
| ---- | ---- | ---- |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
1.3 按位异或(^)
按位异或操作符对两个操作数的对应位进行逻辑异或运算。当两个对应位不同时,结果位为 1;相同时,结果位为 0。其真值表如下:
| Bit1 | Bit2 | Bit1 ^ Bit2 |
| ---- | ---- | ---- |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 |
超级会员免费看
订阅专栏 解锁全文
1451

被折叠的 条评论
为什么被折叠?



