您好,登錄后才能下訂單哦!
大家都知道,windows下有個(gè)計(jì)算器工具,我們?cè)诠ぷ魃钪薪?jīng)常使用到它。但是,你可知Linux下也同樣有個(gè)計(jì)算器嗎?
當(dāng)然,良許說(shuō)的是命令行下的計(jì)算器工具,而不是界面型的計(jì)算器。良許是Linux應(yīng)用開(kāi)發(fā)工程師,平時(shí)基本是在命令行下工作,所以對(duì)于界面類的操作良許也不是非常擅長(zhǎng)。
啟動(dòng)計(jì)算器
啟動(dòng)這個(gè)命令行計(jì)算器很簡(jiǎn)單,只需在終端下輸入bc即可。bc是英語(yǔ)basic calculator的縮寫(xiě)。退出計(jì)算器也很簡(jiǎn)單,只需輸入quit即可。
選項(xiàng)
當(dāng)然,這個(gè)計(jì)算器也是可以帶選項(xiàng)的,常用的選項(xiàng)如下:
-i:強(qiáng)制進(jìn)入交互式模式;
-l:定義使用的標(biāo)準(zhǔn)數(shù)學(xué)庫(kù);
-w:對(duì)POSIX bc的擴(kuò)展給出警告信息;
-q:不打印正常的GNU bc環(huán)境信息;
-v:顯示指令版本信息;
-h:顯示指令的幫助信息。
基本運(yùn)算
啟動(dòng)計(jì)算器之后,就可以在里面進(jìn)行計(jì)算了。基本的運(yùn)算如下:
+ 加法
- 減法
/ 除法
^ 指數(shù)
% 余數(shù)
當(dāng)然,如果只支持這些運(yùn)算的話,那也太小兒科了,它的強(qiáng)大之處還在后頭。
表達(dá)式運(yùn)算
如果要計(jì)算一個(gè)表達(dá)示,直接在bc里輸入表達(dá)式即可。bc會(huì)將變量存儲(chǔ),其它表達(dá)式也可以直接使用這個(gè)變量。
進(jìn)制切換
作為一個(gè)程序員,我們經(jīng)常與二進(jìn)制,十進(jìn)制,十六進(jìn)制進(jìn)行打交道,bc當(dāng)然也支持這些操作。輸入和輸出的數(shù)系基分別存儲(chǔ)在ibase和obase變量中,默認(rèn)值為10,有效的數(shù)值是2到16。也就是說(shuō),我們除了常規(guī)的2、8、10、16進(jìn)制,還可以使用3、5、7、9等進(jìn)制。
但是,在進(jìn)行設(shè)置的時(shí)候,一定要先設(shè)置obase,再設(shè)置ibase。因?yàn)槿绻仍O(shè)置ibase的話,再設(shè)置obase時(shí),obase等號(hào)后面的數(shù)字就會(huì)被認(rèn)為是ibase設(shè)置的進(jìn)制值。
精度調(diào)整
bc默認(rèn)的精度是0,也就是說(shuō),bc是默認(rèn)以整數(shù)的方式進(jìn)行存儲(chǔ)。我們可以通過(guò)設(shè)置scale這個(gè)變量來(lái)進(jìn)行調(diào)整精度。
使用內(nèi)置函數(shù)
除了簡(jiǎn)單的算術(shù)操作符,bc還通過(guò)外部的數(shù)學(xué)函數(shù)庫(kù)來(lái)提供許多高級(jí)的數(shù)學(xué)函數(shù)。此時(shí),應(yīng)該使用-l選項(xiàng)。常用的函數(shù)如下:
N的二次方根 sqrt(N)
X的正弦(X是弧度) s(X)
X的余弦(X是弧度) c(X)
X的反正弦(返回值是弧度) a(X)
X的自然對(duì)數(shù): l(X)
X的指數(shù)對(duì)數(shù): e(X)
編程運(yùn)算
作為一個(gè)計(jì)算語(yǔ)言,bc支持簡(jiǎn)單的聲明(變量賦值、中斷、返回等)、復(fù)合語(yǔ)句(if、while、for loop等)和自定義函數(shù)。這個(gè)功能就比較高級(jí),更詳細(xì)的內(nèi)容可以參考官方指南。
通過(guò)管道操作
直接上例子:
也能夠使用HERE 命令:
能夠使用內(nèi)置的變量 last 引用上一次的結(jié)果:
last 也能夠用 點(diǎn)號(hào)取代:
非交互界面下使用bc
到目前為止,我們一直在交互界面下使用bc。不過(guò)更加流行的使用bc的方法是在沒(méi)有交互界面的腳本中運(yùn)行bc。這種情況下,你可以使用echo命令并且借助管道來(lái)向bc發(fā)送輸入內(nèi)容。
運(yùn)行結(jié)果:
一個(gè)簡(jiǎn)單的計(jì)算三角形面積的程序
進(jìn)行結(jié)果:
結(jié)語(yǔ)
bc這個(gè)命令行計(jì)算器非常強(qiáng)大,至少比window自帶的計(jì)算器要強(qiáng)大很多。這個(gè)工具特別適合linux開(kāi)發(fā)人員,在無(wú)需打開(kāi)手機(jī)計(jì)算器的情況下,很方便的就可以進(jìn)行數(shù)學(xué)運(yùn)算。同時(shí),也可以編寫(xiě)腳本進(jìn)行更復(fù)雜的數(shù)學(xué)運(yùn)算。更強(qiáng)大的功能還有待你的發(fā)現(xiàn)!
更多精彩內(nèi)容,請(qǐng)關(guān)注公眾號(hào)良許Linux,公眾內(nèi)回復(fù)1024可免費(fèi)獲得5T技術(shù)資料,包括:Linux,C/C++,Python,樹(shù)莓派,嵌入式,Java,人工智能,等等。公眾號(hào)內(nèi)回復(fù)進(jìn)群,邀請(qǐng)您進(jìn)高手如云技術(shù)交流群。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。