shell编程之位运算符

位运算是基于内存中二进制数据的运算。常见的位运算有左移运算,右移运算,按位与,按位或,按位非,按位异或等运算。
1.左移、右移运算
左移、右移元素实际是整数在内存中的左右移动。符号分别为<<和>>。例如十进制数4,使用二进制表示为:00000100;若对其进行左移两位,则左移后右边的空缺用0补足,为00010000,十进制的值为16.

[root@node1 ~]# let "value=4<<2"
[root@node1 ~]# echo $value
16
[root@node1 ~]# let "value=16>>2"
[root@node1 ~]# echo $value
4

2.按位与
按位与运算符为&,即将两个整数写成二进制形式,同位置进行比较,只有当对应的二进制值都为1时,结果才为1,例如:12的二进制为00001100,4的二进制为00000100;与运算的结果为4

[root@node1 ~]# let "value=12&4"
[root@node1 ~]# echo $value
4

3.按位或
按位或运算符为|,即将两个整数写成二进制形式,同位置进行比较,只要对应的位置有1,结果就为1,例如:8的二进制为00001000,4的二进制为00000100;或运算的结果为12

[root@node1 ~]# let "value=8|4"
[root@node1 ~]# echo $value
12

4.按位非
按位非运算符为~,计算比较复杂,快捷公式为~a的值为-(a+1)
例如:

[root@node1 ~]# let "value=~8"
[root@node1 ~]# echo $value
-9

5.按位异或
按位异或运算符为^,即将两个整数写成二进制形式,同位置进行比较,只有当对应的二进制值都为0或者都为1时,结果才为0,否则为1,例如:10的二进制为00001010,3的二进制为00000011;异或运算的结果为9

[root@node1 ~]# let "value=10^3"
[root@node1 ~]# echo $value
9
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值