Shell 中位运算符的应用
位运算符通常用于整数间运算,位运算符是针对整数在内存中二进制数据流中的位进行操作。
例如:表达式“2>>1”表示将整数的二进制数2在内存中的二进制数据流向左移动一位。
运算符 | 名称 | 举例 | 解释value的值 |
<< | 左移 | value=4>>2 | 4左移2位,value值为16 |
>> | 右移 | value=8<<2 | 8右移2位,value值为2 |
& | 按位与 | value=8&&4 | 8按位与4,value值为0 |
| | 按位或 | value=8|4 | 8按位或4,value值为12 |
~ | 按位非 | value=~8 | 按位非8,value值为-9 |
^ | 按位异或 | value=10^3 | 10按位异或3,value值为9 |
注: 对于按位非,若求“~a”则结果为-(a+1)举一个详细例子:求“~8”分析由于计算机通常
用补码进行符号运算,[[x]补]补=[x]所以
则8的二进制为00001000 求非为11110111
求反码为1001000求补码为1001001所以最后的结果为1001001,~8 即为-9。