2012-03-07 108 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 

相反也適用。

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

相關問題