使用vim的二进制表示

时间:2013-10-04 12:18:36

标签: vim

是否有一种简单的方法可以使用vim将以下十六进制值转换为二进制表示。

00ab abcd ff01 1234

应该是这样的。

0000000010101011 1010101111001101 1111111100000001 0001001000110100

1 个答案:

答案 0 :(得分:5)

运行这两个命令,它应该将行从十六进制转换为二进制。第一行只是为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