1. N进制整数到十进制整数之间的转换
A) 使用 echo $((BASE#number)) 命令转换(BASE为2到64之间的整数)
$echo $((16#1a))
26
$echo $((32#1G))
33
$echo $((32#1V))
63
$echo $(64#1a))
74
$echo $(64#1z))
99
$echo $(64#1A))
100
$echo $(64#1Z))
125
$echo $((071))
57
$echo $((0xff))
255
B) 使用 bc 命令转换
$echo "ibase=8;71" | bc
57
$echo "ibase=3;21" | bc
7
2. 十进制整数到N进制整数的转换
A) 使用 awk 命令转换成八、十六进制整数
$echo "39" | awk "{printf("%o\n", $0)}'
47
$echo "123" | awk '{printf("%x\n", $0)}'
7b
B) 使用 bc 命令转换
$echo "obase=16;123" | bc
7B
$echo "obase=32;57" | bc
01 25
3. N进制到八、十六进制之间的转换
$echo $((12#19)) | awk '{printf("%x\n", $0)}'
15
4. 使用 bc 进行两种进制之间的转换
$echo "ibase=16;1B" | bc
27
$echo "ibase=16;obase=A;1B" | bc
27
$echo "obase=10;ibase=16;1B" | bc
27
$echo "ibase=16;obase=16;1B" | bc
01 05 /* 注意实际上是以 16#16 = 22 进制输出的 */
$echo "obase=2;ibase=16;E9.A5"
11101001.1010001
阅读(1525) | 评论(0) | 转发(0) |