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。