溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

發(fā)布時(shí)間:2020-07-04 22:03:35 來(lái)源:網(wǎng)絡(luò) 閱讀:636 作者:良許Linux 欄目:系統(tǒng)運(yùn)維

大家都知道,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即可。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

選項(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ù)

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

當(dāng)然,如果只支持這些運(yùn)算的話,那也太小兒科了,它的強(qiáng)大之處還在后頭。

表達(dá)式運(yùn)算

如果要計(jì)算一個(gè)表達(dá)示,直接在bc里輸入表達(dá)式即可。bc會(huì)將變量存儲(chǔ),其它表達(dá)式也可以直接使用這個(gè)變量。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

進(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)制值。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

精度調(diào)整

bc默認(rèn)的精度是0,也就是說(shuō),bc是默認(rèn)以整數(shù)的方式進(jìn)行存儲(chǔ)。我們可以通過(guò)設(shè)置scale這個(gè)變量來(lái)進(jìn)行調(diào)整精度。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

使用內(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)

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

編程運(yùn)算

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

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

通過(guò)管道操作

直接上例子:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

也能夠使用HERE 命令:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

能夠使用內(nèi)置的變量 last 引用上一次的結(jié)果:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

last 也能夠用 點(diǎn)號(hào)取代:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

非交互界面下使用bc

到目前為止,我們一直在交互界面下使用bc。不過(guò)更加流行的使用bc的方法是在沒(méi)有交互界面的腳本中運(yùn)行bc。這種情況下,你可以使用echo命令并且借助管道來(lái)向bc發(fā)送輸入內(nèi)容。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

運(yùn)行結(jié)果:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

一個(gè)簡(jiǎn)單的計(jì)算三角形面積的程序

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

進(jìn)行結(jié)果:

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

結(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ù)交流群。

Linux里隱藏的計(jì)算器,你知道它的奧秘嗎?

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI