linux实现乘法函数,linux命令行计算器
詳細(xì)文檔請 man bc
在windows下,大家都知道直接運(yùn)行calc,(c:\windows\system32\calc.exe),請可以打開計(jì)算器。
注:
calculate vt.&vi.
計(jì)算;calculator n. 計(jì)算器。calc就是這個(gè)計(jì)算的簡寫。
Ca在化學(xué)中是代表鈣元素,calcium
鈣(20號(hào)元素,符號(hào)Ca)。兩者有什么聯(lián)系呢?
calculate 來自calculus,原義是做算術(shù)運(yùn)算的小石子,是calx(石灰石)的小稱。
那么在linux系統(tǒng)下,有無與windows下calc.exe類似的計(jì)算器呢?
下面總結(jié)linux下的三個(gè)命令,來介紹一下linux下的計(jì)算方法:
1)bc
bc在默認(rèn)的情況下是個(gè)交互式的指 令。在bc工作環(huán)境下,可以使用以下計(jì)算符號(hào):
+ 加法
- 減法
* 乘法
/ 除法
^ 指數(shù)
% 余數(shù)
如:#
bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation,
Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
3+6
<=加法
9
4+2*3??????????<=加法、乘法
10
(4+2)*3????????<=加法、乘法(優(yōu)先)
18
4*6/8
<=乘法、除法
3
10^3
<=指數(shù)
1000
18%5???????????<=余數(shù)
3+4;5*2;5^2;18/4
<=一行輸入多個(gè)計(jì)算,用;相隔。
7
10
25
4
quit <=退出
# bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation,
Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=3
<=設(shè)小數(shù)位
1/3
.333
quit
以上是交互的計(jì)算,那到也可以 不進(jìn)行交互而直接計(jì)算出結(jié)果。
A.用echo和|法,如:
# echo "(6+3)*2" |bc
18
# echo 15/4 |bc
3
# echo "scale=2;15/4"
|bc
3.75
# echo "3+4;5*2;5^2;18/4"
|bc
7
10
25
4
另外,
bc除了scale來設(shè)定小數(shù)位之外,還有ibase和obase來其它進(jìn)制的運(yùn)算。
如:
//將16進(jìn)制的A7輸出為10進(jìn)制, 注意,英文只能大寫
# echo "ibase=16;A7"
|bc
167
//將2進(jìn)制的11111111轉(zhuǎn)成10進(jìn)制
# echo "ibase=2;11111111"
|bc
255
//輸入為16進(jìn)制,輸出為2進(jìn)制
# echo "ibase=16;obase=2;B5-A4"
|bc
10001
對(duì)于bc還有補(bǔ)充,在bc --help中還可以發(fā)現(xiàn):bc后可以接文件名。如:
# more calc.txt
3+2
4+5
8*2
10/4
# bc calc.txt
5
9
16
2
2)expr
expr命令可不光能計(jì)算加減乘除哦,還有很多表達(dá)式,都可以計(jì)算出結(jié)果,不過有一點(diǎn)需要注意,在計(jì)算加減乘除時(shí),不要忘了使用空格和轉(zhuǎn)義。下
面直接用實(shí)例來介紹一下expr的運(yùn)算,如:
# expr 6 +
3
(有空格)
9
# expr?2 \*
3
(有轉(zhuǎn)義符號(hào))
6
# expr 14 % 9
5
# a=3
# expr
$a+5
(無空格)
3+5
# expr $a +
5
(變量,有空格)
8
#
a=`expr 4 + 2`
echo $a
6# expr $a + 3
9
另外,expr對(duì)于字串的操作(計(jì)算)也是很方便的,如:
//字串長度
#?expr length
"yangzhigang.cublog.cn"
21
//從位置處抓取字串
# expr substr "yangzhigang.cublog.cn"
1 11
yangzhigang
//字串開始處
# expr index
"yangzhigang.cublog.cn" cu
13
3)dc
用dc來進(jìn)行計(jì)算的人可以不多,因?yàn)閐c與bc相比要復(fù)雜,但是在進(jìn)行簡單的計(jì)劃時(shí),是差不多的,不算難。dc為壓棧操作,默認(rèn)也是交互的,但
也可以用echo和|來配合打算。
如:
# dc
3
2+
p
5
4*
p
20
quit
# echo 3 2+ 4* p |dc
20
4)echo
echo用來進(jìn)行回顯,是周知的事。上面也配合bc來進(jìn)行計(jì)算。其實(shí)echo也可以單獨(dú)進(jìn)行簡單的計(jì)算,如:
# echo $((3+5))
8
# echo $(((3+5)*2))
16
echo還可以進(jìn)行變量的計(jì)算,如:
# a=10
# b=5
# echo $(($a+$b))
15
# echo $a+$b
10+5
# echo $a+$b |bc
15
//計(jì)算前天的日期
#? echo `date
+%Y%m%d`
20090813
#? echo `date +%Y%m%d`-2
20090813-2
#? echo `date +%Y%m%d`-2
|bc20090811
5)AWK
awk在處理文件的時(shí),可以進(jìn)行運(yùn)算,那當(dāng)然也可以單單用來計(jì)算了,如:
# awk 'BEGIN{a=3+2;print
a}'
5
# awk 'BEGIN{a=(3+2)*2;print
a}'
10
Awk 支持常見的運(yùn)算符, 如 + (加),- (減), * (乘), / (除), ^ 或 ** (乘方), % (取模)
等等。 此外, awk 也提供了一些常用的數(shù)學(xué)函數(shù), 比如 sin(x), cos(x), exp(x), log(x),
sqrt(x), rand()。 使用這些運(yùn)算符和函數(shù)可以直接進(jìn)行一些簡單的運(yùn)算:
# echo | awk '{print
8+6}'
14
# echo | awk '{print
8/6}'
1.33333
# echo | awk '{print
9%5}'
4
總結(jié)
以上是生活随笔為你收集整理的linux实现乘法函数,linux命令行计算器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [arm驱动]linux内核时钟
- 下一篇: linux 其他常用命令