一,位操作与逻辑操作
位操作不同于逻辑操作。逻辑操作是一种整体操作,而位操作是针对内部数据位补码的操作。逻辑操作只有真假,位操作只有0和1。
运算符如下:
二,数据的二进制表示
1,八位二进制的补码
2,二进制打印
功能:显示二进制补码
三,位操作
1,位于(&)
x & 1 = x; x & 0 = 0;
参考用途:在某些位保持不变的情况下,其余位置为0。
2,位或(|)
x | 1 = 1; x | 0 = x;
参考用途:某些位置不变,其余位为1。
3,位取反(~)
参考用途:间接的构造某个特别的数(如最大有符号正数),以增强程序的可读性。
4,位异或(^)
参考用途:某些位保持不变,其余位取反。
5,位左移(<<)
用法:x << n (n表示左移的位数)
规则:使操作数的各位左移,低位补0,高位溢出。
例:
5<<2=20
0101 <<2 = 010100
6,位右移(>>)
用法:x >> n
规则:
使操作数的各位右移,移出的低位被舍弃。
对于高位而言,当是无符号数或有符号正数时,高位补0,当是负数时,则取决于所使用的系统:补0的为“逻辑右移”,补1的为“算术右移”。
例:
5 >> 2 =1
0101 -> 0001
20 >> 2 =5
10100 -> 0101
四,应用
1,掩码
掩码就是掩盖一些东西,留下一些东西。
2,功能
MASK=1<<1;
flag=0x96;
MASK -> 0000 0010
flag -> 1001 0110
& ->