大量基础转换

时间:2014-03-05 09:02:29

标签: shell

是否有任何shell命令可以将大数字从一个基数转换为另一个基数

代表:

  Converting 1024-bit binary number into hexadecimal number      

1 个答案:

答案 0 :(得分:0)

您可以查看bchere。例如。将12转换为二进制(输出基数= 2)

echo 'obase=2;12' | bc
1100

还有dchere

还有printf。 E.g。

printf "%x" 32
20

或者您可以使用bigintbignum打包Perl。见here。 E.g。

perl -e '$line="1101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111110111101010110110111110111011111101111010101101101111101110111111011110101011011011111011101111";$hex=unpack("H*",pack("B*",$line));print $hex'

输出:

deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef

此外,您可以使用xxd将十六进制转换为二进制:

echo -n $'\x02\x02' | xxd -b
0000000: 00000010 00000010