你們都知道,windows下有個計算器工具,咱們在工做生活中常常使用到它。可是,你可知Linux下也一樣有個計算器嗎?linux
固然,良許說的是命令行下的計算器工具,而不是界面型的計算器。良許是Linux應用開發工程師,平時基本是在命令行下工做,因此對於界面類的操做良許也不是很是擅長。程序員
啓動計算器編程
啓動這個命令行計算器很簡單,只需在終端下輸入bc便可。bc是英語basic calculator的縮寫。退出計算器也很簡單,只需輸入quit便可。windows
選項函數
固然,這個計算器也是能夠帶選項的,經常使用的選項以下:工具
-i:強制進入交互式模式;oop
-l:定義使用的標準數學庫;ui
-w:對POSIX bc的擴展給出警告信息;人工智能
-q:不打印正常的GNU bc環境信息;命令行
-v:顯示指令版本信息;
-h:顯示指令的幫助信息。
基本運算
啓動計算器以後,就能夠在裏面進行計算了。基本的運算以下:
+ 加法
- 減法
* 乘法
/ 除法
^ 指數
% 餘數
固然,若是隻支持這些運算的話,那也過小兒科了,它的強大之處還在後頭。
表達式運算
若是要計算一個表達示,直接在bc裏輸入表達式便可。bc會將變量存儲,其它表達式也能夠直接使用這個變量。
進制切換
做爲一個程序員,咱們常常與二進制,十進制,十六進制進行打交道,bc固然也支持這些操做。輸入和輸出的數系基分別存儲在ibase和obase變量中,默認值爲10,有效的數值是2到16。也就是說,咱們除了常規的二、八、十、16進制,還可使用三、五、七、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