Conversion d'une string en hexadécimal

Contenu du snippet

Conversion d'une chaîne de caractères hexa-décimaux en entier

Source / Exemple :


Dim hds As New System.Management.ManagementObject("win32_logicaldisk='c:'")
        hds.Get() ' Récupère les informations du disque
        Dim sn As String = hds.Properties("volumeserialnumber").Value 'Numéro de série dans sn
        Dim nb As UInteger
        Dim element As String 'Caractère lu dans la chaîne sn

        For i = 0 To sn.Length - 1 'Lecture élément par élément
            element = Mid(sn, sn.Length - i, 1)
            Select Case element
                Case 0
                    nb = nb
                Case 1
                    nb += 1 * (Math.Pow(16, i))
                Case 2
                    nb += 2 * (Math.Pow(16, i))
                Case 3
                    nb += 3 * (Math.Pow(16, i))
                Case 4
                    nb += 4 * (Math.Pow(16, i))
                Case 5
                    nb += 5 * (Math.Pow(16, i))
                Case 6
                    nb += 6 * (Math.Pow(16, i))
                Case 7
                    nb += 7 * (Math.Pow(16, i))
                Case 8
                    nb += 8 * (Math.Pow(16, i))
                Case 9
                    nb += 9 * (Math.Pow(16, i))
                Case "A"
                    nb += 10 * (Math.Pow(16, i))
                Case "B"
                    nb += 11 * (Math.Pow(16, i))
                Case "C"
                    nb += 12 * (Math.Pow(16, i))
                Case "D"
                    nb += 13 * (Math.Pow(16, i))
                Case "E"
                    nb += 14 * (Math.Pow(16, i))
                Case "F"
                    nb += 15 * (Math.Pow(16, i))

            End Select

        Next

Conclusion :


Bon, il doit exister une manière bien plus propre de faire ceci mais je n'ai pas trouvé ! J'étais en train de plancher sur un système de code d'activation pour mon application quand je me suis retouvé devant le problème suivant : Je récupère le numéro de série du disque dur sous forme de string, afin de faire des opérations sur ce numéro, il me fallait le convertir en entier ! Le numéro est une suite de caractères hexa-décimaux mais dans une string. Les quelques lignes suivantes créent donc un entier en lisant chaque caractère (hexa) de la chaîne de caractères ! Le math.pow signifie 16 élevé à la puissance i. En effet, par exemple : 5A en hexa-décimal vaut 90 en décimal : A=10 et 5=5 donc, pour convertir vers le décimal on fait = 10*(16^0)+5*(16^1) = 10*1+5*16=90 !

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.