您的位置:首页 > 运维架构 > Shell

谢烟客---------Linux之Bash基础特性算术运算(5)

2017-08-02 09:49 381 查看
算术运算
算术:数学中最古老,最基础和最初等的部分.它研究数的性质及其运算.把数和数的性质,数和数之间的四则运算在应用过程中的经验积累起来,并加以整理,就形成了最古老的一门数学——算术
算术运算:数的加、减、乘、除以及乘方开方等数学运算,区别于几何运算。

算术运算的符号
完成基本的算术运算 (arithmetic operators) 符号,就是用来处理四则运算的符号




1)加法:同类事物的重复或累计,是数字运算的开始,不同类比如一个苹果+一个橘子其结果只能等于二个水果就存在分类与归类的关系
公式:被加数 + 加数 = 和 (a+b=c)
2)减法:加法的逆运算;减去一个数,等于加这个数的相反数
公式:被减数 - 减数 = 差 (a-b=c)
3)乘法:加法的特殊形式;相同的数加起来的快捷方式。其运算结果称为积。从哲学角度解析,乘法是加法的量变导致的质变结果
公式:被乘数 * 乘数 = 积 (a*b=c)
4)除法:乘法的逆运算;根据乘法表,两个整数可以用长除法(直式除法)笔算。 如果被除数有分数部分(或者说是小数点),计算时将小数点带下来就可以;如果除数有小数点,将除数与被除数的小数点同时移位,直到除数没有小数点。
公式:被除数÷除数=商(a÷b=c)
5)求模:取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。
公式:
1.求 整数商: c = a/b;
2.计算模或者余数: r = a - c*b.
linux中: r=a%b (r<b)

6)水仙花数:水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

Linux中算术运算
将数据从内存中取到cpu的寄存器,进行运算后,存回内存中,

存回原处: let count=$count+1

存到另一处: let var=$count+1

1)let命令

格式: let var=算术运算表达式
$ help let
let is a shell builtin
let: let var=算术运算表达式
$ num1=3
$ num2=10
$ let var=$num1+$num2
$ echo $var
13


2)变量引用实现赋值

格式:
var=$[算术运算表达式]
var=$((算术运算表达式))

echo $[算术运算表达式]
echo $((算术运算表达式))
$ var=$[$num2%$num1]
$ echo $var
1
$ echo $(($num2%$num1))
1

3)命令引用实现赋值,(命令中的运算符号,*会被解释为特殊字符,需要转义)
格式:
var=$(expr 被操作数 运算符 操作数)

$ var=$(expr $num2 \* $num1)
$ echo $var
30
$ echo $(expr $num2 \* $num1)
30


bash内建随机数生成器:$RANDOM (2^31-1)
求任意范围内的任意随机数: $A

1) let var=$RANDOM%$A
$ A=60
$ let var=$RANDOM%$A
$ echo $var
58
2) var=$[$RAMDOM%60]
[root@izpo45bh60h6bsz ~]# var=$[$RANDOM%60]
[root@izpo45bh60h6bsz ~]# echo $var
59
3) var=$(($RANDOM%60))

[root@izpo45bh60h6bsz ~]# var=$(($RANDOM%60))
[root@izpo45bh60h6bsz ~]# echo $var
13
4) var=$(expr $RANDOM % 60)

# var=$(expr $RANDOM % 60)
# echo $var
16


将变量存回原处:将变量中存储的数据取出,进行运算后,放回原处
[root@izpo45bh60h6bsz ~]# count=1
[root@izpo45bh60h6bsz ~]# let count=$count+1
[root@izpo45bh60h6bsz ~]# echo $count
2
[root@izpo45bh60h6bsz ~]# let count=$count+1
[root@izpo45bh60h6bsz ~]# echo $count
3
增强型赋值:将变量中存储的数据取出,进行运算后,放回原处
符号: += -= *= /= %= ^=

count+=1 相当于 count=$count+1

count-=1 相当于 count=$count-1

count*=1 相当于 count=$count*1

....

[root@izpo45bh60h6bsz ~]# let count+=1
[root@izpo45bh60h6bsz ~]# echo $count
4
[root@izpo45bh60h6bsz ~]# let count+=1
[root@izpo45bh60h6bsz ~]# echo $count
5
自增、自减
count++ 相当于 count+=1
count-- 相当于 count-=1

[root@izpo45bh60h6bsz ~]# let count++   #相当于let count+=1
[root@izpo45bh60h6bsz ~]# echo $count
6
[root@izpo45bh60h6bsz ~]# let count--   #相当于let count-=1
[root@izpo45bh60h6bsz ~]# echo $count
5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux