MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Conversão numérica (decimal, hexadecimal, octal e binário)

    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 29/3/2014, 00:48

    A pedido de um colega estou inciando este tópico...
    O Desafio é conversão numérica






    1 - Decimal para Binário

    2 - decimal para hexadecimal

    3 - Decimal para Octal




    4 - Hexadecimal para Decimal

    5 - Hexadecimal para Binário

    6 - Hexadecimal para octal




    7 - Binário para Hexadecimal

    8 - Binário para Decimal

    9 - binario para octal

    10 - octal para binario

    11 - octal para Hexadecimal

    12 - octal para Decimal



    Será um ótimo exercício.

    Site para ajuda:
    http://www.dicasdeprogramacao.com.br/as-10-conversoes-numericas-mais-utilizadas-na-computacao/

    Ao ir fazendo, favor postar o exemplo e indicar o cálculo para que eu marque em vermelho.
    Ajuda para testes nas funções desenvolvidas são bem vindas.


    Última edição por HARYSOHN em 29/3/2014, 09:36, editado 5 vez(es)
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 29/3/2014, 00:55

    Para inciar, feito por mim
    Conversão de Binário para Hexadecimal (Testado)
    >> Baseia-se em uma tabela de conversão
        Na caixa texto Binário digite: 100011011  e observe
    Decimal para Binário (A testar)


    https://dl.dropboxusercontent.com/u/26441349/frmConversao.rar


    Cumprimentos.
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 29/3/2014, 01:05

    De Hexa para Binário:
    Na caixa texto Hexadecimal digite: 11B e observe

    https://dl.dropboxusercontent.com/u/26441349/frmConversao_1.rar

    Cumprimentos.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 04/04/2010

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Avelino Sampaio em 29/3/2014, 07:37

    Olá Hary!

    tem alguma coisa na sua fórmula a ser corrigida.  Coloquei o ZERO e me retornou 100000000

    Tem uma fórmula bem mais simples que é ir fazendo a divisão por 2 ate dar zero como resultado.  Vai montando o binário com o resto dessas divisões.   Segue a função de decimal para binário:

    Public Function fncDecBin(dec As Long)
    Dim bin$
    If dec = 0 Then bin = "0"
    Do While Not dec = 0
       bin = bin & (dec Mod 2)
       dec = dec \ 2  'isso é o mesmo que int(dec/2)
    Loop
    fncDecBin = bin
    End Function


    Você sabia que o Access possui funções de decimal para hexadecimal e de decimal para Octal ?  São elas

    hex(10) :::> A
    oct(10) :::> 12

    E o inverso também, ou seja, de octal para decimal e de hexadecimal para decimal.  Podemos utilizar as funções val() ; int() ; clng(); ...  Exemplo com a função Clng()

    Clng("&h" & "A") :::> 10 ' de hexadecimal para decimal
    Clng("&o" & 12) :::> 10 ' de octal para decimal

    Sabendo destas funções fica bem fácil transformar de Hexdecimal para Binário.  Como ?  Passando primeiro para decimal e então de decimal para binário.  Segue a função:

    Public Function fncHexBin(hexa)
    Dim bin$
    Dim dec
    dec = Clng("&h" & hexa)
    If dec = 0 Then bin = "0"
    Do While Not dec = 0
       bin = bin & (dec Mod 2)
       dec = dec \ 2
    Loop
    fncHexBin = bin
    End Function

    Teste:
    fncHexBin("1CDB3") :::> 11001101101100111


    De Hexadecimal para Octal

    oct(clng("&h" & "A")) :::> 12

    De octal para Hexadecimal

    hex(clng("&o" & 12)) :::> A

    Para conhecer bem as funções do Access sugiro que assista esta minha vídeo-aula

    http://www.usandoaccess.com.br/tutoriais/tuto2.asp?id=1#inicio

    Desafio: E para valores negativos ?  E para valores fracionados(ex: 12,35) ?   Segue um link para estudo:

    http://www.raymundodeoliveira.eng.br/binario.html

    Sucesso!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 04/04/2010

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Avelino Sampaio em 29/3/2014, 08:43

    Função de binário para decimal

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

    Teste:
    fncBinDec("111100001") :::> 271


    Vou deixar para vc de Binário para Hexa e de Binário para Octal.

    Sucesso!


    Última edição por Avelino Sampaio em 29/3/2014, 10:35, editado 3 vez(es)
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 29/3/2014, 08:50

    Maravilha Mestre...
    Vou refazer o exemplo aqui.

    Obrigado!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 04/04/2010

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Avelino Sampaio em 29/3/2014, 09:20

    Um novo desafio.

    Baseado no conhecimento acima monte uma função de criptografia e uma outra de descriptografia para senhas numéricas com no mínimo 6 dígitos.

    A ideia é armazenar em campo de uma tabela a senha criptografada no formato binário.

    Aguardamos

    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 29/3/2014, 09:38

    Com as conversões:



    1 - Decimal para Binário

    2 - decimal para hexadecimal

    3 - Decimal para Octal




    4 - Hexadecimal para Decimal

    5 - Hexadecimal para Binário

    6 - Hexadecimal para octal




    7 - Binário para Hexadecimal

    8 - Binário para Decimal

    9 - binario para octal

    https://dl.dropboxusercontent.com/u/26441349/frmConversao_2.rar

    Assim que terminar de Octal para ......
    Vamos tentar isto Mestre!!

    Obrigado


    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7301
    Registrado : 05/11/2009

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Alexandre Neves em 30/3/2014, 20:16

    Function ConvDeDecimal(ValorDecimal As Double, NovaBase As Byte) As String
    'Função criada por Alexandre Neves
    Dim ValorResto As Double, ValorQuociente As Integer
    If NovaBase > 16 Then MsgBox "Esta função só admite conversão até à base hexadecimal (16).": Exit Function
    ConvDeDecimal = ""
    Calcula:
    ValorResto = Resto(ValorDecimal, CDbl(NovaBase))
    Select Case ValorResto
    Case 15
    ConvDeDecimal = "F" & ConvDeDecimal
    Case 14
    ConvDeDecimal = "E" & ConvDeDecimal
    Case 13
    ConvDeDecimal = "D" & ConvDeDecimal
    Case 12
    ConvDeDecimal = "C" & ConvDeDecimal
    Case 11
    ConvDeDecimal = "B" & ConvDeDecimal
    Case 10
    ConvDeDecimal = "A" & ConvDeDecimal
    Case Else
    ConvDeDecimal = ValorResto & ConvDeDecimal
    End Select
    ValorQuociente = Quociente(ValorDecimal, CDbl(NovaBase))
    If ValorQuociente > 0 Then
    ValorDecimal = ValorQuociente
    GoTo Calcula
    End If
    End Function

    Function ConvParaDecimal(strValor As String, BaseOrigem As Byte) As Double
    'Função criada por Alexandre Neves
    Dim ValorBase As Byte, Posicao As Byte, I As Integer
    ConvParaDecimal = 0: Posicao = 0
    For I = Len(strValor) To 1 Step -1
    Select Case Mid(strValor, I, 1)
    Case "F"
    ValorBase = 15
    Case "E"
    ValorBase = 14
    Case "D"
    ValorBase = 13
    Case "C"
    ValorBase = 12
    Case "B"
    ValorBase = 11
    Case "A"
    ValorBase = 10
    Case Else
    ValorBase = Mid(strValor, I, 1)
    End Select
    ConvParaDecimal = ConvParaDecimal + ValorBase * BaseOrigem ^ Posicao
    Posicao = Posicao + 1
    Next
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3491
    Registrado : 04/04/2010

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Avelino Sampaio em 31/3/2014, 08:23

    Olá Hary!

    Tem que fazer um ajuste nas funções propostas, devido a uma limitação da função MOD.  Dependendo do tamanho do número, entre a 9ª e 10ª casa o MOD abre o bico.

    12345678901 mod 2 ::::> Erro estouro
    9999999999 mod 2 ::::> Erro estouro

    para poder ultrapassar estes valores, substitua a função MOD para :

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


    Sucesso!
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 1/4/2014, 01:28

    Boas Avelino, irei modificar...

    Cumprimentos.
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 1/4/2014, 01:32

    Boas Grande Alexandre..

    as duas funções, perdoe-me a ignorância converte

    De Decimal para?
    E de que para decimal?

    não compreendi muito bem

    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7301
    Registrado : 05/11/2009

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Alexandre Neves em 1/4/2014, 21:41

    Boa noite, Grande Hary
    Convertem de e para a base que se pretenda: 2, 3, 4, ... até 16 (hexadecimal)
    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12227
    Registrado : 01/03/2011

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  HARYSOHN em 1/4/2014, 21:49

    Então o código acima serve ao propósito que se originou o tópico correto?
    Executa as conversões citadas no primeiro post?


    Aproveitando a deixa do Mestre Alexandre, link sobre sistema de numeração:

    http://www.matematicamuitofacil.com/naodecimais.html

    Cumprimentos.
    avatar
    ismaelruperto
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 25/09/2013

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  ismaelruperto em 8/5/2019, 16:20

    Como posso converter um valor binário para o caractere correspondente?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7301
    Registrado : 05/11/2009

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Alexandre Neves em 9/6/2019, 13:59

    Boa tarde, ismaelruperto
    tem de saber para que tipo de código pretende converter (base 3, 4, ..., 16)


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado

    Conversão numérica (decimal, hexadecimal, octal e binário) Empty Re: Conversão numérica (decimal, hexadecimal, octal e binário)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/6/2019, 04:20