Linux里隱藏的計算器仅父,你知道它的奧秘嗎?
大家都知道浑吟,windows下有個計算器工具笙纤,我們在工作生活中經(jīng)常使用到它。但是组力,你可知Linux下也同樣有個計算器嗎省容?
當(dāng)然,良許說的是命令行下的計算器工具燎字,而不是界面型的計算器腥椒。良許是Linux應(yīng)用開發(fā)工程師,平時基本是在命令行下工作候衍,所以對于界面類的操作良許也不是非常擅長笼蛛。
啟動計算器
啟動這個命令行計算器很簡單,只需在終端下輸入bc即可蛉鹿。bc是英語basic calculator的縮寫滨砍。退出計算器也很簡單,只需輸入quit即可妖异。
選項
當(dāng)然惋戏,這個計算器也是可以帶選項的,常用的選項如下:
-i:強制進入交互式模式他膳;
-l:定義使用的標(biāo)準(zhǔn)數(shù)學(xué)庫响逢;
-w:對POSIX bc的擴展給出警告信息;
-q:不打印正常的GNU bc環(huán)境信息棕孙;
-v:顯示指令版本信息舔亭;
-h:顯示指令的幫助信息。
基本運算
啟動計算器之后蟀俊,就可以在里面進行計算了分歇。基本的運算如下:
+ 加法
- 減法
* 乘法
/ 除法
^ 指數(shù)
% 余數(shù)
當(dāng)然欧漱,如果只支持這些運算的話,那也太小兒科了葬燎,它的強大之處還在后頭误甚。
表達(dá)式運算
如果要計算一個表達(dá)示缚甩,直接在bc里輸入表達(dá)式即可。bc會將變量存儲窑邦,其它表達(dá)式也可以直接使用這個變量擅威。
進制切換
作為一個程序員,我們經(jīng)常與二進制冈钦,十進制郊丛,十六進制進行打交道,bc當(dāng)然也支持這些操作瞧筛。輸入和輸出的數(shù)系基分別存儲在ibase和obase變量中厉熟,默認(rèn)值為10,有效的數(shù)值是2到16较幌。也就是說揍瑟,我們除了常規(guī)的2、8乍炉、10绢片、16進制,還可以使用3岛琼、5底循、7、9等進制槐瑞。
但是熙涤,在進行設(shè)置的時候,一定要先設(shè)置obase随珠,再設(shè)置ibase灭袁。因為如果先設(shè)置ibase的話,再設(shè)置obase時窗看,obase等號后面的數(shù)字就會被認(rèn)為是ibase設(shè)置的進制值茸歧。
精度調(diào)整
bc默認(rèn)的精度是0,也就是說显沈,bc是默認(rèn)以整數(shù)的方式進行存儲软瞎。我們可以通過設(shè)置scale這個變量來進行調(diào)整精度。
使用內(nèi)置函數(shù)
除了簡單的算術(shù)操作符拉讯,bc還通過外部的數(shù)學(xué)函數(shù)庫來提供許多高級的數(shù)學(xué)函數(shù)涤浇。此時,應(yīng)該使用-l選項魔慷。常用的函數(shù)如下:
N的二次方根 sqrt(N)
X的正弦(X是弧度) s(X)
X的余弦(X是弧度) c(X)
X的反正弦(返回值是弧度) a(X)
X的自然對數(shù): l(X)
X的指數(shù)對數(shù): e(X)
編程運算
作為一個計算語言只锭,bc支持簡單的聲明(變量賦值、中斷院尔、返回等)蜻展、復(fù)合語句(if喉誊、while、for loop等)和自定義函數(shù)纵顾。這個功能就比較高級伍茄,更詳細(xì)的內(nèi)容可以參考官方指南。
通過管道操作
直接上例子:
也能夠使用HERE 命令:
能夠使用內(nèi)置的變量 last 引用上一次的結(jié)果:
last 也能夠用 點號取代:
非交互界面下使用bc
到目前為止施逾,我們一直在交互界面下使用bc敷矫。不過更加流行的使用bc的方法是在沒有交互界面的腳本中運行bc。這種情況下汉额,你可以使用echo命令并且借助管道來向bc發(fā)送輸入內(nèi)容曹仗。
運行結(jié)果:
一個簡單的計算三角形面積的程序
進行結(jié)果:
結(jié)語
bc這個命令行計算器非常強大,至少比window自帶的計算器要強大很多闷愤。這個工具特別適合linux開發(fā)人員整葡,在無需打開手機計算器的情況下,很方便的就可以進行數(shù)學(xué)運算讥脐。同時遭居,也可以編寫腳本進行更復(fù)雜的數(shù)學(xué)運算。更強大的功能還有待你的發(fā)現(xiàn)旬渠!
更多精彩內(nèi)容俱萍,請關(guān)注公眾號良許Linux,公眾內(nèi)回復(fù)1024可免費獲得5T技術(shù)資料告丢,包括:Linux枪蘑,C/C++,Python岖免,樹莓派岳颇,嵌入式,Java颅湘,人工智能话侧,等等。公眾號內(nèi)回復(fù)進群闯参,邀請您進高手如云技術(shù)交流群瞻鹏。
最后,最近很多小伙伴找我要Linux學(xué)習(xí)路線圖鹿寨,于是我根據(jù)自己的經(jīng)驗新博,利用業(yè)余時間熬夜肝了一個月,整理了一份電子書脚草。無論你是面試還是自我提升赫悄,相信都會對你有幫助!目錄如下:
免費送給大家,只求大家金指給我點個贊涩蜘!
電子書 | Linux開發(fā)學(xué)習(xí)路線圖
也希望有小伙伴能加入我嚼贡,把這份電子書做得更完美!
有收獲同诫?希望老鐵們來個三連擊,給更多的人看到這篇文章
推薦閱讀: