C语言的位运算在检测与控制领域很常用,位运算包括
& 按位于 主要用于清零、取一个数中的某些指定位、保留某些位
| 按位或
^ 异或 主要用于使特定位翻转、与0相与保留原值、交换两个值不用临时变量
交换变量:
a = a ^ b;
b = b ^ a;
a = a ^ b;
~ 取反
<< 左移
>> 右移
另外还有
位段:C语言允许在一个结构体中以位为单位指定其成员所占内存长度
1 struct packed_data {
2 unsigned a:2;
3 unsigned a:2;
4 unsigned a:2;
5 unsigned a:2;
6 int i;
7 }data;