shell中的运算

2.1.shell中的运算命令

[root@lee ~]# echo a-((1 + 2))[root@lee ~]# echo $a
[root@lee ~]# 1et a=1+2[root@lee ~]# echo $a
西安鸥)
[root@lee ~]#expr 1\*2
[root@lee ~]#echo"scale=2;1/2"bc.50
[root@lee ~]# echo "obase=2;ibase=10;2"lbc10
[root@lee ~]# echo $[1+1]
[root@lee ~]#awk'BEGIN{print 1.88/29}'0.0648276
[root@lee ~]#declare -i a=1+1[root@lee ~]# echo $a

2.2.shell中的数学运算符号
shell中常用的运算符号如下

示例:

[root@lee mnt]# echo $((1+1))
[root@lee mnt]# echo $((2-1))
[root@lee mnt]# echo $((2*2))
[root@lee mnt]#echo $((2**3))
[root@lee mnt]#echo$((2/3))
[root@lee mnt]# echo $((2%3))
工
#用for语句验证 +=、-=、*=、/=、%=
]# vim test.sh#!/bin/bashfor i in {1..5}do
((n+=i))
echo $n
done
[root@lee mnt]#sh test.sh#n没有值 i=1 经过运算n=1#n=1 i=2 经过运算n=3
西安鸥!
#用for语句验证++variable、--variable variable++、variable-[root@lee ~]# for((n=l;n<=5;n++))> do
>echo $ndone
NM

2.3.位运算
2.3.1.什么是位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的位运算就是直接对整数在内存中的二进制位进行操作

2.3.2.二进制的的负数表示方法
2进制表示数字正负时最高位为0表示正数,最高位1表示负数源码:负数的源码为负数绝对值的二进制数字,整数的源码为本身的二进制反码:负数绝对值源码取反,但是表示正负的高位值不变补码:反码+1为补码,补码即为负数二进制表示方式计算结果超过8位舍弃超过的高位,特殊需要情况下使用扩展8位

负数补码的原因是为了可以让加法器同时可以运算加法和减法
以时钟位例子
我想把8点调到10点:顺时针8+2 逆时针8-10
最终时针的位置计算公式
8+(顺时针调正的格数|神秘数字-逆时针调整的格子)=最终位置神秘数字是时钟显示里最大数字+1

2.3.4位逻辑运算

示例:

# echo $((2<<1))
# echo $((2>>1))
]# a=2]# $((a>>=1))# echo $a
]# a=2]# $((a<<=1))# echo $aN

[root@lee ~]# a=1[root@lee ~]#((a&=2))
[root@lee ~]# echo $a
[root@lee ~]# a=1[root@lee ~]#((a=2))
[root@lee ~]# echo $a
[root@lee ~]# a=1[root@ee ~]#((a^=2))
[root@lee ~]# echo $a

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寒克1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值