Chinaunix

标题: 利用bc进制转换 [打印本页]

作者: xiaopan3322    时间: 2010-09-01 11:30
标题: 利用bc进制转换
本帖最后由 xiaopan3322 于 2010-09-01 11:47 编辑

之前看到有人提到bc,我瞎写的,就 take “HexBinDecOct” as a e.g 吧:

十进制to十六进制的:
  1. [10]-tdlteman@hzling05:~ -> echo "obase=16; `seq 1 15`" | bc      
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. A
  12. B
  13. C
  14. D
  15. E
  16. F
  17. [12]-tdlteman@hzling05:~ -> echo "obase=16; 30" | bc  
  18. 1E
复制代码
其他同理哈,改obase就行了。。。

当然也可以用printf:
  1. [22]-tdlteman@hzling05:~ -> printf "%X\n" 30
  2. 1E
复制代码

作者: 好看的附件    时间: 2010-09-01 11:32

作者: bbgg1983    时间: 2010-09-01 11:43
http://bbs.chinaunix.net/viewthread.php?tid=1765262
这有个帖子,方法很多,反过来就是了
作者: xiaopan3322    时间: 2010-09-01 11:46
这有个帖子,方法很多,反过来就是了
bbgg1983 发表于 2010-09-01 11:43



    恩,学习
作者: Shell_HAT    时间: 2010-09-01 11:49
  1. #十六进制转十进制
  2. echo $((16#2A))
  3. echo $((0x2A))

  4. awk '$2=strtonum($2)' urfile
  5. awk --posix '$2=sprintf("%d",$2)' urfile
  6. awk --posix '{printf "%s %d\n",$1,$2}' urfile

  7. #八进制转十进制
  8. echo $((8#42))

  9. #二进制转十进制
  10. echo $((2#1111))

  11. #十进制转十六进制
  12. printf "%x\n" "42"

  13. #十进制转八进制
  14. printf "%o\n" "42"

  15. #十进制转二进制
  16. echo "obase=2;10" | bc

  17. #用bc做十六进制/二进制运算
  18. echo "ibase=obase=16;1234+ABCD" | bc
  19. echo 'ibase=obase=2;1111+1000' | bc
复制代码

作者: expert1    时间: 2010-09-01 12:29
o(╯□╰)o,真是学不完的东西啊
作者: xiaopan3322    时间: 2010-09-01 13:33
回复 5# Shell_HAT


    嘿嘿,珍藏。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2