Números Hexadecimais, Octais e Binários
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
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!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Vídeo - Criando Ribbons parte 1 - Conhecendo a estrutura Xml
Não há comentário |