编程中经常会有一些数值的计算或者进制的转换,虽然各操作系统都自带了计算器应用,但部分功能还是不算完善,比如取余数、进制转换、引用上次的计算结果等,相较而言,Windows 中的计算器应用还是功能很强大的。其实,作为计算机,计算功能当然是其最基础也是最擅长的功能,仅终端就涵盖了各种各样的计算方式,如bc
、echo
、expr
等
bc
基础运算
1 2
| $ echo 15/4 | bc $ echo "3+4; 5*2; 5^2; 18/4" | bc
|
进制转换
十六进制转十进制
1 2
| $ echo "ibase=16;A7" | bc 167
|
二进制转十进制
1 2
| $ echo "ibase=2;11111111" | bc 255
|
十六进制转二进制
1 2
| $ echo "ibase=16; obase=2; B5-A4" | bc 10001
|
last 引用上次计算结果
1 2 3
| $ echo "50*4; last+100" | bc 200 300
|
last
也可以用.
代替
1
| $ echo "50*4;.+100" | bc
|
交互式计算
一行多个计算表达式,以;
分隔
1 2 3 4 5
| 3+4; 5*2; 5^2; 18/4 7 10 25 4
|
echo
1 2 3
| $ echo $((3+5)) $ echo $(((3+5)*2)) $ echo `date +%Y%m%d`
|
expr
注意表达式两侧的空格与转义字符
1 2 3
| $ expr 6 + 3 $ expr 2 \* 3 $ expr 14 % 9
|
参考资料
- Linux 下计算命令:求和、求平均值、求最值 - 运维笔记