1. 程式人生 > >Linux裏隱藏的計算器,你知道它的奧秘嗎?

Linux裏隱藏的計算器,你知道它的奧秘嗎?

流行 就是 工具 樹莓派 運算 返回 一個 語句 並且

大家都知道,windows下有個計算器工具,我們在工作生活中經常使用到它。但是,你可知Linux下也同樣有個計算器嗎?

當然,良許說的是命令行下的計算器工具,而不是界面型的計算器。良許是Linux應用開發工程師,平時基本是在命令行下工作,所以對於界面類的操作良許也不是非常擅長。

啟動計算器

啟動這個命令行計算器很簡單,只需在終端下輸入bc即可。bc是英語basic calculator的縮寫。退出計算器也很簡單,只需輸入quit即可。

技術分享圖片

選項

當然,這個計算器也是可以帶選項的,常用的選項如下:

-i:強制進入交互式模式;

-l:定義使用的標準數學庫;

-w:對POSIX bc的擴展給出警告信息;

-q:不打印正常的GNU bc環境信息;

-v:顯示指令版本信息;

-h:顯示指令的幫助信息。

基本運算

啟動計算器之後,就可以在裏面進行計算了。基本的運算如下:

+ 加法

- 減法

  • 乘法

/ 除法

^ 指數

% 余數

技術分享圖片

當然,如果只支持這些運算的話,那也太小兒科了,它的強大之處還在後頭。

表達式運算

如果要計算一個表達示,直接在bc裏輸入表達式即可。bc會將變量存儲,其它表達式也可以直接使用這個變量。

技術分享圖片

進制切換

作為一個程序員,我們經常與二進制,十進制,十六進制進行打交道,bc當然也支持這些操作。輸入和輸出的數系基分別存儲在ibase和obase變量中,默認值為10,有效的數值是2到16。也就是說,我們除了常規的2、8、10、16進制,還可以使用3、5、7、9等進制。

但是,在進行設置的時候,一定要先設置obase,再設置ibase。因為如果先設置ibase的話,再設置obase時,obase等號後面的數字就會被認為是ibase設置的進制值。

技術分享圖片

精度調整

bc默認的精度是0,也就是說,bc是默認以整數的方式進行存儲。我們可以通過設置scale這個變量來進行調整精度。

技術分享圖片

使用內置函數

除了簡單的算術操作符,bc還通過外部的數學函數庫來提供許多高級的數學函數。此時,應該使用-l選項。常用的函數如下:

N的二次方根 sqrt(N)

X的正弦(X是弧度) s(X)

X的余弦(X是弧度) c(X)

X的反正弦(返回值是弧度) a(X)

X的自然對數: l(X)

X的指數對數: e(X)

技術分享圖片

編程運算

作為一個計算語言,bc支持簡單的聲明(變量賦值、中斷、返回等)、復合語句(if、while、for loop等)和自定義函數。這個功能就比較高級,更詳細的內容可以參考官方指南。

技術分享圖片

通過管道操作

直接上例子:

技術分享圖片

也能夠使用HERE 命令:

技術分享圖片

能夠使用內置的變量 last 引用上一次的結果:

技術分享圖片

last 也能夠用 點號取代:

技術分享圖片

非交互界面下使用bc

到目前為止,我們一直在交互界面下使用bc。不過更加流行的使用bc的方法是在沒有交互界面的腳本中運行bc。這種情況下,你可以使用echo命令並且借助管道來向bc發送輸入內容。

技術分享圖片

運行結果:

技術分享圖片

一個簡單的計算三角形面積的程序

技術分享圖片

進行結果:

技術分享圖片

結語

bc這個命令行計算器非常強大,至少比window自帶的計算器要強大很多。這個工具特別適合linux開發人員,在無需打開手機計算器的情況下,很方便的就可以進行數學運算。同時,也可以編寫腳本進行更復雜的數學運算。更強大的功能還有待你的發現!

更多精彩內容,請關註公眾號良許Linux,公眾內回復1024可免費獲得5T技術資料,包括:Linux,C/C++,Python,樹莓派,嵌入式,Java,人工智能,等等。公眾號內回復進群,邀請您進高手如雲技術交流群。

技術分享圖片

Linux裏隱藏的計算器,你知道它的奧秘嗎?