如何在十进制和二进制之间进行转换?我正在使用Solaris 10平台
十进制到二进制
4000000002 - > 100000000000000000000000000010二进制到十进制
100000000000000000000000000010 - > 4000000002
我在unix中使用了以下命令,但这需要很多时间。我有这样的2000万条记录
对于十进制到二进制,将obase设置为2:
echo 'obase=2;4000000002' | bc
对于二进制到十进制,将ibase设置为2:
echo 'ibase=2;100000000000000000000000000010' | bc
答案 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]