Como converter hexadecimal para binário no modo de texto?

7

Estou tentando converter valores hexadecimais em binários. Por exemplo, eu tenho um arquivo de texto contendo:

0.0 010111010  B4
0.1 001001011  A3
...

E eu estou tentando converter B4para 10110100, e A3também.

Mas não consigo encontrar nenhum método. Então, alguém sabe como fazer isso?

bural
fonte

Respostas:

8

O arquivo de ajuda :h eval-examplescontém um exemplo de uma number2binaryfunção:

" The function Nr2Bin() returns the binary string representation of a number.
func Nr2Bin(nr)
  let n = a:nr
  let r = ""
  while n
    let r = '01'[n % 2] . r
    let n = n / 2
  endwhile
  return r
endfunc

Copie esse exemplo para o seu .vimrc e depois de reiniciar o seu vim, você pode fazer :echo Nr2Bin(0xB4)e ele produzirá 10110100.

Ao escrever (por exemplo, no modo de inserção), você pode pressionar <C-R>=Nr2Bin(0xA3)e o resultado será inserido no seu buffer.

Christian Brabandt
fonte