算术运算
算术运算:数的加、减、乘、除以及乘方开方等数学运算,区别于几何运算。
算术运算的符号
<a href="https://s4.51cto.com/wyfs02/M02/9D/7D/wKioL1mBI7aBHmC4AAFyTuNWOrY877.jpg" target="_blank"></a>
1)加法:同类事物的重复或累计,是数字运算的开始,不同类比如一个苹果+一个橘子其结果只能等于二个水果就存在分类与归类的关系
3)乘法:加法的特殊形式;相同的数加起来的快捷方式。其运算结果称为积。从哲学角度解析,乘法是加法的量变导致的质变结果
公式:被除数÷除数=商(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=算术运算表达式
1
2
3
<code>$ help </code><code>let</code>
<code>let</code> <code>is a shell </code><code>builtin</code>
<code>let</code><code>: </code><code>let</code> <code>var=算术运算表达式</code>
4
5
<code>$ num1=3</code>
<code>$ num2=10</code>
<code>$ </code><code>let</code> <code>var=$num1+$num2</code>
<code>$ </code><code>echo</code> <code>$var</code>
<code>13</code>
2)变量引用实现赋值
格式:
var=$[算术运算表达式]
var=$((算术运算表达式))
echo $[算术运算表达式]
echo $((算术运算表达式))
<code>$ var=$[$num2%$num1]</code>
<code>1</code>
<code>$ </code><code>echo</code> <code>$(($num2%$num1))</code>
3)命令引用实现赋值,(命令中的运算符号,*会被解释为特殊字符,需要转义)
格式:
var=$(expr 被操作数 运算符 操作数)
<code>$ var=$(</code><code>expr</code> <code>$num2 \* $num1)</code>
<code>30</code>
<code>$ </code><code>echo</code> <code>$(</code><code>expr</code> <code>$num2 \* $num1)</code>
bash内建随机数生成器:$RANDOM (2^31-1)
求任意范围内的任意随机数: $A
1) let var=$RANDOM%$A
<code>$ A=60</code>
<code>$ </code><code>let</code> <code>var=$RANDOM%$A</code>
<code>58</code>
2) var=$[$RAMDOM%60]
<code>[root@izpo45bh60h6bsz ~]</code><code># var=$[$RANDOM%60]</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># echo $var</code>
<code>59</code>
3) var=$(($RANDOM%60))
<code>[root@izpo45bh60h6bsz ~]</code><code># var=$(($RANDOM%60))</code>
4) var=$(expr $RANDOM % 60)
<code># var=$(expr $RANDOM % 60)</code>
<code># echo $var</code>
<code>16</code>
将变量存回原处:将变量中存储的数据取出,进行运算后,放回原处
6
7
<code>[root@izpo45bh60h6bsz ~]</code><code># count=1</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># let count=$count+1</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># echo $count</code>
<code>2</code>
<code>3</code>
增强型赋值:将变量中存储的数据取出,进行运算后,放回原处
符号: += -= *= /= %= ^=
count+=1 相当于 count=$count+1
count-=1 相当于 count=$count-1
count*=1 相当于 count=$count*1
....
<code>[root@izpo45bh60h6bsz ~]</code><code># let count+=1</code>
<code>4</code>
<code>5</code>
自增、自减
count++ 相当于 count+=1
count-- 相当于 count-=1
<code>[root@izpo45bh60h6bsz ~]</code><code># let count++ #相当于let count+=1</code>
<code>6</code>
<code>[root@izpo45bh60h6bsz ~]</code><code># let count-- #相当于let count-=1 </code>
<code></code>
本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1952897,如需转载请自行联系原作者