# bcbc 1.06Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.
(interrupt) use quit to exit.
(interrupt) use quit to exit.
quit#
--在bc上常用的运算符有:+ 加法- 减法* 乘法/ 除法(在没有设置scale精确度时候,自动取整)^ 指数% 求余数(取模)
在bc上还可以使用++ 变量 -- 变量 变量 ++ 变量 --
# bcbc 1.06Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.1+23234+23/2*326725^315625100%40100%238quit
# bcbc 1.06Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.scale=2 /*scale=number*/11/42.7511/33.66quit说明:scale=2 是设置小数精确度。/*备注部分*/
bc还可以运行一个带有复杂运算的程序文件(这属于bc的一个扩展属性),如:The following is code that uses the extended features of bc to implementa simple program for calculating checkbook balances.This program is best kept in a file so that it can be used many times withouthaving to retype it at every use.
--使用vi建立一个test运算程序:# vi test
scale=2print ""Check book program!"print " Remember,deposits are negative transaction."
print " Initial balance?";bal=read()bal /= 1print ""n"while (1){ "current balance = ";bal "transaction?";trans =read() if(trans == 0) break; bal -= trans bal /= 1}~~~"test" [New] 14L, 268C written # ls--计算结果:
# bc "testbc 1.06Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.
Check book program!Remember,deposits are negative transaction.Initial balance?560
current balance = 560.00transaction?400current balance = 160.00transaction?100current balance = 60.00transaction?0quit
还可以这么用:
将10进制数转换成16进制数
比如转换 65535 为 16进制
echo 'obase=16; 65535' | bc
得到 FFFF
printf 是挺方便的,不过我还是喜欢 bc ,因为它能转换任意进制,比如英制的12进制,
你也可以炮制并不存在的进制。比如
echo 'obase=37; 65535' | bc
就是37进制啦,哈哈,它等于 01 10 32 08
'obase=37; 65535' 都传递给程序 bc 告诉它,我要求现在 output base 为 37 ,那 65535 为多少呢?
另外,还有 ibase 表示 input base,比如
echo 'obase=16; ibase=8; 177777' | bc
可以直接将八进制的数177777变成十六进制,也是FFFF