位运算
1. 按位左移"<<"
按位左移运算符"<<"的作用是对参与运算的对象按规定的位数进行左移,即对运算对象的机器码左移规定的位。在移位的过程中,高位移出的位舍弃,低位左移后补0. 左移一位相当于该数乘以2,按位左移比乘法运算快得多。
2. 按位右移">>"
在移位的过程中,低位移出的位舍弃,高位右移后补0或者补1.如果需要移位的数据室无符号数则补0,是有符号数则补符号位。
3. 按位与"&"
int a=0x36,b=0xc0,c;
c=a&b;
c=a&b;
4. 按位或"|"
5. 按位异或"^"
数据交换
a=a^b;
b=b^a;
a=a^b;
a=a^b;
b=b^a;
a=a^b;
6. 按位取反"~"
7.设置位与清除位
要设置或清除某个位,可以使用掩码运算。如果有一个4字节的标号,要将第8位设置为TRUE,可对该变量和128进行“或运算”。
要清除第8位,将该变量和128的反码进行“与运算”
8.反转位
要反转第8位,可将该位与128进行“异或运算”
9.位字段
位字段应用在struct或者class中,它的类型总是unsigned int,并在为字段后加冒号和数字。所占空间是4的倍数。

输出:
4
64.
如果data.b=300,而b只占8位,输出结果是44,丢弃了最高位。