Chinaunix首页 | 论坛 | 博客
  • 博客访问: 661650
  • 博文数量: 139
  • 博客积分: 2655
  • 博客等级: 少校
  • 技术积分: 1723
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-02 16:03
文章分类

全部博文(139)

文章存档

2013年(2)

2011年(17)

2010年(14)

2009年(86)

2008年(20)

分类:

2009-03-05 23:30:10

 实现进制转换有很多方法,比如awk,bc(这个功能很好,很强大),自己实现等等。
  shell的一种用法:

$((base#number))
其中number是欲转化的数,base是其进制数.(base也可省略,number默认是十进制,如果以0,或0x则分别是八进制和十六进制).比如:
#echo $((012))
#echo $((0xAF))
#echo $((2#1101010))
#echo $((8#377))
#echo $((16#D8))#有base不用0x,不然报错!8进制没问题,weird!
另外这个用法还可以扩展:
$((base#number^base#Base1))#这种情况是把number以Base1为基进行取反操作:
#base=1f
#Base1=ff
#echo $((16#$base^16#$Base1))
224

awk实现十进制到十六进制转化(八进制是%o)
#echo "123456"|awk '{printf "%x\n",$0}'
1e240
bc实现各种进制之间的转化:
#echo 'ibase=16; obase=10; A' | bc
A

阅读(1144) | 评论(0) | 转发(0) |
0

上一篇:李开复如是说

下一篇:[ZZ]门户网站运维abc

给主人留下些什么吧!~~