MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

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

    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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)
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    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 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!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    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 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)


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 29/3/2014, 08:50

    Maravilha Mestre...
    Vou refazer o exemplo aqui.

    Obrigado!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    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 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



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    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 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!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 1/4/2014, 01:28

    Boas Avelino, irei modificar...

    Cumprimentos.
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    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 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
    avatar
    Convidado
    Convidado


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

    Mensagem  Convidado 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 28
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    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 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: 21/11/2024, 15:06