Jump to content

[VB6] Decimais para Hexadecimais e vice-versa!


Dj_Pedro

Recommended Posts

Hi pessoal tudo??

Olhem eu cria fazer um programa que convertesse decimais para hexadecimais ...

Eu fiz um em binario para hexadecimal e vice-versa (pk não sabia fazer como decimais) e deu-me muito trabalho tive de fazer sempre assim

If text1.text = 0 then text2.text = 0
                 If text3.text = 1 then text4.text = 00001
                 If text5.text = 2 then text6.text = 00010

E para não fazer a mesma cena com decimais

   

If text1.text = 5 then text2.text = 5
                     If text3.text = 10 then text4.text = A 

E acho que existe uma forma de fazer isso num só código e numa so barra ...

Se é que me faço etender ....

O meu esquema bin to hex e hex to bin era analisar as textbox (que eram 16 a contar c/ o 0 logo hexadecimal) e depois por nas outras textbox.... e isso da muito trabalho e gostava de saber pela outra maneira...

Alguem me pode ajudar???

Cumps. 😁

Link to comment
Share on other sites

Se n me engano é Hex(numero) experimenta! o contrario é que acho que n existe nenhuma função lembro-me de fazer isso à um tempo e deu-me uma grande dor de cabeça....

(entretanto fui procurar aqui aos porjectos acabados...)

Descobri o codigo mas está em ASP, a diferença não é mta vê se consegues adapta-lo:

Function hexadecimal_decimal(a)
If isnumeric(a) = true OR inStr(a,"a") <> 0 OR inStr(a,"b")  <> 0 OR inStr(a,"c") <> 0 OR inStr(a,"d") <> 0 OR inStr(a,"e") <> 0 OR inStr(a,"f") <> 0 OR inStr(a,"A") <> 0 OR inStr(a,"B")  <> 0 OR inStr(a,"C") <> 0 OR inStr(a,"D") <> 0 OR inStr(a,"E") <> 0 OR inStr(a,"F") <> 0 then

valHEX = a 
valLen = Len(valHex)
valLen2= len(valHex)
intPof = valLen
For i = 1 To ValLen
ValDec = Left(Mid(valHex,i,1),i)
If Instr(Ucase(valDec),"A") Then valDec = 10
If Instr(Ucase(valDec),"B") Then valDec = 11
If Instr(Ucase(valDec),"C") Then valDec = 12
If Instr(Ucase(valDec),"D") Then valDec = 13
If Instr(Ucase(valDec),"E") Then valDec = 14
If Instr(Ucase(valDec),"F") Then valDec = 15
If valLen2>= 3 Then
rslt=valDec*16^(intPof-i)
valLen2=valLen2-1
ElseIf valLen2=2 Then
rslt=valDec*16
valLen2=valLen2-1
ElseIf valLen2=1 Then
rslt=valDec
End If
myRslt = myRslt + rslt
Next
response.write ("<br><br><br><center><font size=8>O valor da conversão é:<b> " &myRslt& " </b></font><br><br> <a href=conversor.htm>Converter outro numero</a></center>")
else
response.write ("<br><br><br><center><font size=6>Numero Invalido, so pode conter numeros de 0 a 9 e letras de A a F.</font><br><br><a href=conversor.htm>Back</a></center>")
End if
End Function

Dá noticias  👍

Link to comment
Share on other sites

De decimal para hexadecimal usa Hex(numero). Para fazer uma conversão de hexadecimal para decimal não necessitas de fazer nada por exemplo experimenta Print, &HF34A01. Agora, aquilo que tu queres (acho eu...) é escrever o hexadecimal numa textbox e depois converter para decimal, acho que podes fazer assim: CInt("&H" & Text1.Text). Cuidado com os overflows. 👍

Link to comment
Share on other sites

Se n me engano é Hex(numero) experimenta! o contrario é que acho que n existe nenhuma função lembro-me de fazer isso à um tempo e deu-me uma grande dor de cabeça....

(entretanto fui procurar aqui aos porjectos acabados...)

Descobri o codigo mas está em ASP, a diferença não é mta vê se consegues adapta-lo:

Function hexadecimal_decimal(a)
If isnumeric(a) = true OR inStr(a,"a") <> 0 OR inStr(a,"b")  <> 0 OR inStr(a,"c") <> 0 OR inStr(a,"d") <> 0 OR inStr(a,"e") <> 0 OR inStr(a,"f") <> 0 OR inStr(a,"A") <> 0 OR inStr(a,"B")  <> 0 OR inStr(a,"C") <> 0 OR inStr(a,"D") <> 0 OR inStr(a,"E") <> 0 OR inStr(a,"F") <> 0 then

valHEX = a 
valLen = Len(valHex)
valLen2= len(valHex)
intPof = valLen
For i = 1 To ValLen
ValDec = Left(Mid(valHex,i,1),i)
If Instr(Ucase(valDec),"A") Then valDec = 10
If Instr(Ucase(valDec),"B") Then valDec = 11
If Instr(Ucase(valDec),"C") Then valDec = 12
If Instr(Ucase(valDec),"D") Then valDec = 13
If Instr(Ucase(valDec),"E") Then valDec = 14
If Instr(Ucase(valDec),"F") Then valDec = 15
If valLen2>= 3 Then
rslt=valDec*16^(intPof-i)
valLen2=valLen2-1
ElseIf valLen2=2 Then
rslt=valDec*16
valLen2=valLen2-1
ElseIf valLen2=1 Then
rslt=valDec
End If
myRslt = myRslt + rslt
Next
response.write ("<br><br><br><center><font size=8>O valor da conversão é:<b> " &myRslt& " </b></font><br><br> <a href=conversor.htm>Converter outro numero</a></center>")
else
response.write ("<br><br><br><center><font size=6>Numero Invalido, so pode conter numeros de 0 a 9 e letras de A a F.</font><br><br><a href=conversor.htm>Back</a></center>")
End if
End Function

Dá noticias  👍

O que quero é hexadecimal com os números e letras(1 até 9 , A até F) para converter em decimais (só números).

Pois obrigado pela resposta + acho que assim não vou chegar la ....

Tipo ASP da para programar em base win32???

Cumps.

P.s.-> desculpem o incomodo + é que eu aind ñ estou a dar aulas de programação só para ano é que vou para o 10º ai as minhas varias perguntas...

Link to comment
Share on other sites

Tens aqui o programa já feito, está a funcionar não sei se falta alguma coisa ou não ...

Obrigado Pessoal por tudo 👍

Só que tipo eu cria fazer uma coisa do genero :

Hex -> 0878C07E4F762318

E converter o la de cima para :

Dec -> 008120192126079118035024 (c/ este formato)

E vice-versa alguem sabe como???

Deixo aqui um exemplo de um programa (não feito por mim) + cria fazer deste genero ....

Cumps.

Link to comment
Share on other sites

Se bem percebi deve ser algu do genero disto que queres

Option Explicit

Private Sub cmdConvert_Click()
Dim Vals(50) As String * 1
Dim Temp     As String
Dim i        As Integer
Dim TSoma    As Double
Dim Soma     As Double

Temp = UCase(txtVal.Text)

For i = 0 To Len(txtVal.Text) - 1
    Vals(i) = Right(Temp, 1)
    Temp = Left(Temp, Len(Temp) - 1)
DoEvents
Next i


For i = 0 To Len(txtVal.Text) - 1
     TSoma = (Converte(Vals(i)) * (16 ^ i))
     Soma = Soma + TSoma
DoEvents
Next i
    
MsgBox Soma
End Sub




Private Function Converte(Valor As String) As Integer
Select Case Valor
Case "A"
    Converte = 10
Case "B"
    Converte = 11
Case "C"
    Converte = 12
Case "D"
    Converte = 13
Case "E"
    Converte = 14
Case "F"
    Converte = 15
End Select

If IsNumeric(Valor) Then
    Converte = Val(Valor)
End If
End Function

Apenas tens de adicionar uma texbox com o nome de "txtval" e um CommandButon com o nome de "cmdConvert".

fiz apenas o conversor de Hexadecimal para decimal para teres uma noção de como é, para fazeres a parte de Decimal para Hexadecimal procura os metodos de conversão  😞

cumps

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.