謝煙客---------Linux之Bash基礎特性算術運算(5)
算術運算
算術:數學中最古老,最基礎和最初等的部分.它研究數的性質及其運算.把數和數的性質,數和數之間的四則運算在應用過程中的經驗積累起來,並加以整理,就形成了最古老的一門數學——算術
算術運算:數的加、減、乘、除以及乘方開方等數學運算,區別於幾何運算。
算術運算的符號
完成基本的算術運算 (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]
[[email protected] ~]# var=$[$RANDOM%60] [[email protected] ~]# echo $var 59
3) var=$(($RANDOM%60))
[[email protected] ~]# var=$(($RANDOM%60)) [[email protected] ~]# echo $var 13
4) var=$(expr $RANDOM % 60)
# var=$(expr $RANDOM % 60) # echo $var 16
將變量存回原處:將變量中存儲的數據取出,進行運算後,放回原處
[[email protected] ~]# count=1 [[email protected] ~]# let count=$count+1 [[email protected] ~]# echo $count 2 [[email protected] ~]# let count=$count+1 [[email protected] ~]# echo $count 3
增強型賦值:將變量中存儲的數據取出,進行運算後,放回原處
符號: += -= *= /= %= ^=
count+=1 相當於 count=$count+1
count-=1 相當於 count=$count-1
count*=1 相當於 count=$count*1
....
[[email protected] ~]# let count+=1 [[email protected] ~]# echo $count 4 [[email protected] ~]# let count+=1 [[email protected] ~]# echo $count 5
自增、自減
count++ 相當於 count+=1
count-- 相當於 count-=1
[[email protected] ~]# let count++ #相當於let count+=1 [[email protected] ~]# echo $count 6 [[email protected] ~]# let count-- #相當於let count-=1 [[email protected] ~]# echo $count 5
本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1952897
謝煙客---------Linux之Bash基礎特性算術運算(5)