二进制和十进制之间的转换

时间:2010-09-14 06:25:17

标签: unix

如何在十进制和二进制之间进行转换?我正在使用Solaris 10平台

  

十进制到二进制
  4000000002 - > 100000000000000000000000000010

     

二进制到十进制
  100000000000000000000000000010 - > 4000000002

我在unix中使用了以下命令,但这需要很多时间。我有这样的2000万条记录

对于十进制到二进制,将obase设置为2:

echo 'obase=2;4000000002' | bc 

对于二进制到十进制,将ibase设置为2:

echo 'ibase=2;100000000000000000000000000010' | bc 

1 个答案:

答案 0 :(得分:1)

如果您为每个慢的号码运行bc一次。 您是否可以安排将数据一次性传送到文件并输入?

这是一个简单的插图,从名为input.txt的文件中的数字开始:

# To binary
$ ( echo 'obase=2;ibase=16;'; cat input.txt ) | bc | paste input.txt - > output.txt

# To hex
$ ( echo 'obase=16;ibase=2;'; cat input.txt ) | bc | paste input.txt - > output.txt

结果将写入文件output.txt。

包含paste以生成带标签的输出结果,如

07      111
1A      11010
20      100000
2B      101011
35      110101
80      10000000
FF      11111111

显示输入值与输出值。 如果您只想要结果,可以省略粘贴,例如:

$ ( echo 'obase=2;ibase=16;'; cat input.txt ) | bc > output.txt

请注意,您可能必须设置ibase以及obase才能使转换正确。 gclswceap1d-mc48191-CRENG_DEV [/ home / mc48191 / scratch]