Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4828502
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类:

2008-10-28 21:18:19


zj@zj:~$ echo $(( 16#14 ))

20
zj@zj:~$ echo $(( 8#14 ))

12
zj@zj:~$ echo $(( 7#14 ))

11
zj@zj:~/Script/cushell/08.10.28$ echo $(( 2#11 ))

3
$((BASE#N))将BASE进制(BASE is a decimal number between 2 and 64)的数字N转换为10进制



zj@zj:~$ echo "obase=16;100" | bc
64
zj@zj:~$ echo "obase=8;10" | bc
12
zj@zj:~/Script/cushell/08.10.28$ echo "obase=2;10" | bc
1010
"obase=BASE;N" | bc是将10进制的数字N转换为BASE指定的进制,这里的BASE大于1就可以了^_^
以10进制为中介就可以实现任意进制的数字之间的转换了.

其它可以实现进制转换的方法
printf不支持二进制输出,只支持八进制和十六进制的转换,
zj@zj:~/Script/cushell/08.10.17$ awk 'BEGIN{printf("%o\n",20)}'
24
zj@zj:~/Script/cushell/08.10.17$ awk 'BEGIN{printf("%x\n",20)}'
14

bc的其它小东东^_^ 一般* /就需要它了
zj@zj:~/Script/cushell/08.10.28$ echo "2/8" | bc -l
.25000000000000000000
zj@zj:~/Script/cushell/08.10.28$ echo "scale=2;2/8" | bc -l
.25
zj@zj:~/Script/cushell/08.10.28$ awk 'BEGIN{printf "%.2f\n",2/8}'
0.25

阅读(1364) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~