2012-03-07 932 views

回答

6

我在Linux中使用'bc'命令。 (复杂得多计算器不是转换!)

echo 'ibase=16;obase=2;5f' | bc

的ibase参数是输入基(在这种情况下六),和obase的输出基底(二进制)。

希望它有帮助。

+1

在'ibase'之前设置'obase'。如果首先定义“ibase”,那么'bc'将尝试将'obase'解释为如果它是用'ibase'写的,可能有错误的结果。看[这个问题](http://stackoverflow.com/questions/9889839/bc-and-its-ibase-obase-options)。 – mcmlxxxvi 2014-02-06 10:11:20

+2

使用'bc'版本1.06.95'echo'ibase = 16; obase = 2; 5f'| bc'产生错误:'(standard_in)1:语法错误'。但是,'echo'ibase = 16; obase = 2; 5F'| bc'工作并产生'1011111'。 – nrz 2017-04-24 16:25:30

8
echo "ibase=16; obase=2; 5F" | bc 
+0

谢谢,它与我选择的正确答案相同,因为有解释我选择了它 – srnka 2012-03-12 15:53:06

+2

这与选定的答案不一样。这有'5F',而选择的答案有'5f'。这个答案适用于'bc' 1.06.95,所选答案不会。 – nrz 2017-04-24 16:28:23

7
$ printf '\x5F' | xxd -b | cut -d' ' -f2 
01011111 

或者

$ dc -e '16i2o5Fp' 
1011111 
  • i命令将弹出栈的顶部,并使用它的输入基极。
  • Hex数字必须在上壳体,以避免与直流命令碰撞并且如果输入基数大于16较大不限于A-F
  • o命令对输出库执行相同的操作。
  • p命令将在后面用换行符打印堆栈顶部。
+0

感谢您的回应,很高兴有这么多的方式来完成这项任务:)我选择了“bc”变体 – srnka 2012-03-12 15:53:52

1

Perl的printf已经知道二进制:

$ perl -e 'printf "%08b\n", 0x5D' 
01011101 
0

我写https://github.com/tehmoon/cryptocli这些行业的工作经验。

下面是一个例子:

echo -n 5f5f5f5f5f | cryptocli dd -decoders hex -encoders binary_string 

产量:

0101111101011111010111110101111101011111 

相反也适用。

注意:这并不完美,需要完成很多工作,但它正在工作。

相关问题