linux shell 下各种进制数据转换。

****************************************
linux shell 下各种进制数据转换。
离不了echo 输出显示命令
****************************************
shell 内置各种进制表示方法非常简单。记得 base#number 即可。 base 为 2-64
赋值语句 let 或(()) 不能直接用=号,直接用等号是字符串照印。不是付给数值。
let i=16#ff
let j=8#37
通俗记法: 0x 为16进制, 0开头问8进制
echo 命令以十进制显示数据。
----------------------------------------
1. 各种进制转换为十进制。
为变量赋值: ((var=base#number))
显示变量: echo $var
----------------------------------------
例:
((i=0xff10)); echo $i;
((i=32#qfg; echo $i;

----------------------------------------
2. 十进制转换为其它进制。
利用bc 计算器。
bc命令格式转换为:echo "obase=进制;值" | bc
----------------------------------------
bc 是用来处理文件的。所以采用管道
例如:
echo "obase=16;65536" | bc
10000
echo "obase=8;65536" | bc

200000

****************************************

郑重推荐bc 计算器, 它支持交互模式, 可以使得转换根据简单,方便。

使用示例:

bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
obase=16   设置16进制输出
ibase=10   设置10进制输入
65536         输入十进制 65536
10000         输出16进制 10000
obase      查看当前输出进制
16
ibase      查看当前输入进制

16 进制输入时 a-f 必需用大写, 小写会被视为变量,会报错。

要密切注意obase, ibase 及其含义, 还有一个变量scale, 浮点数精度。除法时会用到。


你可能感兴趣的:(linux,shell,bc)