Conversion hex/dec VB
Chouq
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai utilisé ce code dans une macro excel :
Function hexadecimal_en_decimal(chaine_hexa)
resultat = 0
For i = Len(chaine_hexa) To 1 Step -1 ' Depuis i = longueur chaine à i = 1
longueur = Mid(chaine_hexa, i, 1) ' renvoit le (1) caractère à partir de la position i de la chaine (on commence donc par la fin)
Position = InStr("0123456789ABCDEF", UCase(longueur)) - 1 ' On prend milieu, on met en majuscule au cas où on aurait écrit abcdef au lieu de ABCDEF,
' On met dans position la position du 1er caractère de milieu dans 0123456789ABCDEF et on retire 1 => on a converti de l'hexa en dec
If Position >= 0 Then
valeur = Position * (16 ^ (Len(chaine_hexa) - i)) ' Formule de maths de conversion
resultat = resultat + valeur
Else
resultat = 0
i = 0 ' Fin de la boucle en cas d'erreur
End If
Next
hexadecimal_en_decimal = resultat
End Function
Ca fonctionne mais à la fin de mon chiffre DEC je n'ai que des 0, alors que normalement je devrais avoir autre chose je pense que le code que j'utilise à une limite de caratère mais je n'arrive pas à solutionner le pb.
Quelqu'un peut m'aider ?
Merci
J'ai utilisé ce code dans une macro excel :
Function hexadecimal_en_decimal(chaine_hexa)
resultat = 0
For i = Len(chaine_hexa) To 1 Step -1 ' Depuis i = longueur chaine à i = 1
longueur = Mid(chaine_hexa, i, 1) ' renvoit le (1) caractère à partir de la position i de la chaine (on commence donc par la fin)
Position = InStr("0123456789ABCDEF", UCase(longueur)) - 1 ' On prend milieu, on met en majuscule au cas où on aurait écrit abcdef au lieu de ABCDEF,
' On met dans position la position du 1er caractère de milieu dans 0123456789ABCDEF et on retire 1 => on a converti de l'hexa en dec
If Position >= 0 Then
valeur = Position * (16 ^ (Len(chaine_hexa) - i)) ' Formule de maths de conversion
resultat = resultat + valeur
Else
resultat = 0
i = 0 ' Fin de la boucle en cas d'erreur
End If
Next
hexadecimal_en_decimal = resultat
End Function
Ca fonctionne mais à la fin de mon chiffre DEC je n'ai que des 0, alors que normalement je devrais avoir autre chose je pense que le code que j'utilise à une limite de caratère mais je n'arrive pas à solutionner le pb.
Quelqu'un peut m'aider ?
Merci
Configuration: Windows / Firefox 78.0
A voir également:
- Conversion hex/dec VB
- Hex workshop - Télécharger - Organisation
- Vb - Télécharger - Langages
- Hex editor neo - Télécharger - Édition & Programmation
- Logiciel gratuit conversion calendrier républicain - Télécharger - Études & Formations
- Hex edit - Télécharger - Édition & Programmation
1 réponse
Bonjour,
un peu plus simple:
https://forums.commentcamarche.net/forum/affich-5053964-conversion-hex-dec-en-vb
Hubck
18 janv. 2012 à 11:55
Bonjour,
je sais que c'est vieux comme sujet, mais étant donné que je viens de le trouver....
Si ça peut servir à d'autres, je viens d'écrire ma fonction :
Modifié par Hubck le 18/01/2012 à 12:35
un peu plus simple:
https://forums.commentcamarche.net/forum/affich-5053964-conversion-hex-dec-en-vb
Hubck
18 janv. 2012 à 11:55
Bonjour,
je sais que c'est vieux comme sujet, mais étant donné que je viens de le trouver....
Si ça peut servir à d'autres, je viens d'écrire ma fonction :
Function Hex2Dec(Hexa As String) As Double Dim i As Integer, Multi As Integer Hex2Dec = 0 Hexa = UCase(Trim(Hexa)) If Not Hexa Like "*[G-Z]*" Then For i = 1 To Len(Hexa) Multi = CInt("&H" & (Mid(Hexa, Len(Hexa) - i + 1, 1))) Hex2Dec = Hex2Dec + (Multi * 16 ^ (i - 1)) Next i End If End Function
Modifié par Hubck le 18/01/2012 à 12:35