按位运算符
运算符 | 说明 | 计算方法 |
& | 按位与运算符 | 若操作数的两位都是1则为1,否则都为0 |
| | 按位或运算符 | 若操作数的两位中有一个为1则为1,否则都为0 |
^ | 按位异或(EOF)运算符 | 若操作数的两个位不相同则为1,相同为0 |
~ | 按位非运算符,也称为1的部位运算符 | 一元运算符,1变0,0变1 |
<< | 按位左移运算符 | 比较简单,需要左移N位就在右边加N个0,左边去掉N位 |
>> | 按位右移运算符 | 规则稍微复杂些 |
右移运算符
计算方法:
1 如果进行右移的操作数是一个不带符号的数值,则在其左边增加N位个0,右边去掉N位个数就行。
2 对于进行右移的操作数是一个带符号的负数的时候,则其最左边一位是1,则游动的结果取决于系统,在大多数情况下,
符号位会扩散,所以向右移时补入的是1;但在一些系统中补入的是0.
右移操作的这段话是摘自::C语言入门经典第四版(中文版)116页。之所以直接摘下来是因为我也没有太明白怕说错。呵呵