1. 程式人生 > >謝煙客---------Linux之Bash基礎特性算術運算(5)

謝煙客---------Linux之Bash基礎特性算術運算(5)

linux

算術運算

算術:數學中最古老,最基礎和最初等的部分.它研究數的性質及其運算.把數和數的性質,數和數之間的四則運算在應用過程中的經驗積累起來,並加以整理,就形成了最古老的一門數學——算術

算術運算:數的加、減、乘、除以及乘方開方等數學運算,區別於幾何運算。


算術運算的符號

完成基本的算術運算 (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)