1

次の16進値をvimを使用して2進表現に変換する簡単な方法はありますか?

00ab abcd ff01 1234

のように見えるはずです。

0000000010101011 1010101111001101 1111111100000001 0001001000110100

4

1 に答える 1

5

これらのコマンドの両方を実行すると、行が 16 進数から 2 進数に変換されます。最初の行は、バイナリ表現を返す 16 桁の 16 進数のルックアップ テーブルを作成するだけです。2 行目では、すべての 16 進数を検索し、ルックアップ テーブルから返された値に置き換えます。

:let t = {'0':'0000', '1':'0001', '2':'0010', '3':'0011', '4':'0100', '5':'0101', '6':'0110', '7':'0111', '8':'1000', '9':'1001', 'a':'1010', 'b':'1011', 'c':'1100', 'd':'1101', 'e':'1110', 'f':'1111'}
:s/\x/\=t[tolower(submatch(0))]/g
于 2013-10-04T13:30:25.787 に答える