Linux程式設計實踐 bc:unix 的計算器
阿新 • • 發佈:2021-01-13
Unix 系統中的 bc 命令是執行一個基於字元的計算器程式。
目錄
bc 命令
bc 命令是任意精度計算器語言,通常在linux下當計算器用。
它類似基本的計算器, 使用這個計算器可以做基本的數學運算。
常用的運算:
- + 加法
- - 減法
- * 乘法
- / 除法
- ^ 指數
- % 餘數
舉例:
2+3*4+5*10
64
bc 會顯示計算結果,而且知道先算乘法在做加法。退出 bc,Ctrl+D
處理大整數
bc 的一個重要特點是,可以處理很大的整數,如:
999999999999999999999999*888888888888888888888888 888888888888888888888887111111111111111111111112
還可以通過冪運算來運算:
3333^44
10110061584495640995005898489182285794822405288498070703365111794769\
43890411064925291154381468890721948142209004688381870355409155411563\
21805747562427309521
可程式設計的 bc
bc 是可以程式設計的,可以定義變數,有邏輯判斷和迴圈結構,語法與 c 語言類似,比如:
x = 3
if(x == 3){
y = x*3;
}
y
9
從嚴格意義來說,bc 不做任何計算,主要依賴於 dc
什麼是 dc
dc是一個支援非匹配精度演算法的逆波蘭臺式計算器。
它還允許您定義和呼叫巨集。通常dc從標準輸入讀取;
如果給它任何命令引數,它們就是檔名,dc在從標準輸入讀取之前讀取並執行檔案的內容。所有正常輸出為標準輸出;所有誤差輸出為標準誤差。反向波蘭計算器將數字儲存在堆疊上。輸入一個數字將其推到堆疊上。算術運算從堆疊中彈出引數並推送結果。如計算 2+3 的值,對應的逆波蘭表示式為:23+,就是說操作符在後面,也成字尾表示式。
比如:
2
3
+
p
5
必須是一個數字佔用一行,比如輸入 2 換行,輸入 3換行,輸入+換行,p 是為了列印結果。輸出的意思。
內部如何操作
先將 2 入棧,在將 3 入棧,然後將棧頂的兩個數出站,計算他們的和,並將結果入棧,p 是為了將棧頂元素打印出來。dc 本身是一個基於棧的計算器。
bc 與 dc 之間的關係
bc 是 dc 的前處理器,他將使用者輸入的表示式轉換成逆波蘭表示式,然後通過一個成為管道的通訊程式交給 dc:
對普通使用者來說,bc 就是計算器。