1. 程式人生 > 其它 >Linux程式設計實踐 bc:unix 的計算器

Linux程式設計實踐 bc:unix 的計算器

技術標籤:Linuxlinuxc語言運維

Unix 系統中的 bc 命令是執行一個基於字元的計算器程式。

目錄

bc 命令

處理大整數

可程式設計的 bc

什麼是 dc

內部如何操作

bc 與 dc 之間的關係


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 就是計算器。