... Pague apenas R$67,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Números Hexadecimais, Octais e Binários

O VBA disponibiliza as funções Hex() e Oct() para transformar um número Decimal em Hexadecimal e em Octal, respectivamente.

hex(302010) :::> 49BBA

Oct(302010) :::> 1115672

No caso de passar o valor de Hexadecimal ou Octal para Decimal,  utiliza-se uma das funções de conversão Val(), Clng, Cint(), ... com os prefixos &h e &o

Clng("&h" & "49BBA") :::> 302010

Clng("&o" & 1115672) :::> 302010

Para passar de Decimal para Binário, utiliza-se a fórmula clássica que é a de ir agrupando o resto das sucessivas divisões por 2.  Exemplo: vamos achar o binário do valor decimal 35:

35 / 2 :::> resto 1  Resultado 17

17 / 2 :::> resto 1  Resultado 8

8 / 2 :::> resto 0  Resultado 4

4 / 2 :::> resto 0  Resultado 2

2 / 2 :::> resto 0  Resultado 1

1 / 2 :::> resto 1  Resultado 0
 

Juntando em seqüência, os valores obtidos do resto, obtém-se como resultado, o valor binário correspondente.

35 :::> 100011

Observe a função que realiza o cálculo e retorna com o valor Binário:

Public Function fncDecBin(dec)
Dim bin$
If dec = 0 Then bin = "0"
Do While Not dec = 0
  bin = (dec - Int(dec / 2) * 2) & bin
  dec = Int(dec / 2)
Loop
fncDecBin = bin
End Function

De Binário para Decimal, utiliza-se a fórmula que usa o valor de cada posição binária.  Exemplo:

252423222120 :::> 32-16-8-4-2-1

(32 * 1) + (16 * 0) + (8 * 0) + (4 * 0)  + (2 * 1) + (1 * 1) = 35

Observe a função que realiza o cálculo e retorna com o valor Decimal:

Public Function fncBinDec(bin)
Dim k
Dim dec
For k = Len(bin) To 1 Step -1
  dec = dec + ((2 ^ (k - 1)) * Mid(bin, ((Len(bin) + 1) - k), 1))
Next
fncBinDec = dec
End Function

Veja agora, o uso da funções acima nestes casos.

Para passar de Hexadecimal para Binário:

fncDecBin(Clng("&h" & "49BBA")) :::> 1001001101110111010

Para passar de Octal para Binário:

fncDecBin(Clng("&o" & 1115672)) :::> 1001001101110111010

Para passar de Binário para Hexadecimal:

Hex(fncBinDec("1001001101110111010")) :::> 49BBA


Bom estudo!


 

 


Não há comentário

Envie seu comentário: