基本运算符:
&:按位与运算符,可以对变量s的特定位清零,
这时可以设置一个变量mask,将mask中的特定位赋值为0,其他位置为1,然后作运算“s = s&mask”,即可特定位清零。
使用按位与运算,可以取变量s的指定位的值,这时可以设置一个变量mask,将mask中的指定位赋值为1,其他位置赋值为0,然后作运算“s = s&mask”,即可取指定位的值
| :按位或运算符,经常用按位或运算将一个变量s的某些位变为1,而其他位不变。这时可以设置一个变量mask,让mask中的特定位的赋值是1,其他位赋值为0,然后作运算“s = s|mask”,即可。
^ :按位异或,可以使用按位异或运算让一个变量s的特定位的值取反,方法是:设置一个变量mask,让mask中的特定位的赋值是1,其他位赋值为0,然后作运算“s = s^mask”
<<或>> :将变量x左移n位,在不丢失有效数字的情况下,相当于将x乘以2的n次方。
关于位段运算:
1、位段的类型只能是int,unsigned int , signed int 3种类型,不能是其他类型。
2、位段所占的二进制位数不能超过该基本类型所能表示的最大位数。
3、无名位段不能被访问,但是会占据空间。
4、不能对位段进行取地址操作。
5、若位段占的二进制位数为0,则这个位段必须是无名位段,这表示下一个位段从下一个存储单元开始存放。