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
有識訓?希望老鐵們來個三連擊,給更多的人看到這篇文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/76677.html
標籤:Linux
