左移操作()
规则:
右侧的空闲位用0填充
高位左移溢出时,舍弃该高位。
例如,如果10的二进制文件是0000 1010,则将10向左移动3次就是0101 0000,结果是80。
103==80
右移操作()
规则:
左边的空位用0或1填充。 正数用0填,负数用1填。 注:不同的环境可能有不同的填充方式。
如果低位溢出,则该位将被丢弃。
例如,如果20个二进制文件是0001 0100,将10向右移动3次就是0000 0010,结果是2。
203==2
常见应用
左移相当于2,但请注意边界问题。 例如char a=65; a1用2计算是130; 但是,符号char的取值范围-128~127已经越界,经常超过3个数值,因此,-128至第3个数值-126是a1的正确结果。
右移相当于除以2,但请注意,如果移位较多,结果将接近非常小的数字,如上面结果中的- 1,0。
一个是“”数据的逐位逻辑与,两个“”是逻辑与,或者类似。
按位与运算()
能够与1、0相通关
可以保持2,1相和原始值
按位或运算(|)
可以保持1、0相或原始值
2、可与1相并列设置1
异或运算(^)
与1,0的异或保持原来的值
与2、1的异或比特值反转
3、可以通过某种算法使用“异或”交换两个值
异或运算有结合律
取反(~)