Fonction de conversion decimal (base10) vers hexadécimal (base 16), binaire (base 2), octale (base 8)

Contenu du snippet

Fonction qui permet de convertique un nombre decimal dans les 3 bases les plus utiliser en informatique (Hexadécimal, Binaire, Octale)

Source / Exemple :


'Passez ces lignes de code dans un module :
'--------------------------------------------------------

Function conv_dec_bin(dec As Long) As String
'Déclaration des variables
Dim dec2 As Long
Dim Result As String
'Début du test
Do While dec > 0 'Tant que la variable << dec >> est superieur à 0
    dec2 = Int(dec / 2) 'La variable << dec >> reçoit reçoit la parti entiere de << dec/2 >>
    conv_dec_bin = dec - (dec2 * 2) & conv_dec_bin ' le resultat de la fonction << conv_dec_bin >> reçoit le resultat de << dec - (dec2 * 2) >>
    dec = dec2 ' la Variable << dec >> reçoit la valeur de la variable << dec2 >>
Loop ' Fin du test
End Function

Function conv_dec_oct(dec As Long) As String
'Déclaration des variables
Dim dec2 As Long
Dim Result As String
'Début du test
Do While dec > 0 'Tant que la variable << dec >> est superieur à 0
    dec2 = Int(dec / 8) 'La variable << dec >> reçoit reçoit la parti entiere de << dec/8 >>
    conv_dec_oct = dec - (dec2 * 8) & conv_dec_oct 'le resultat de la fonction << conv_dec_bin >> reçoit le resultat de << dec - (dec2 * 8) >>
    dec = dec2 'la Variable << dec >> reçoit la valeur de la variable << dec2 >>
Loop 'Fin du test
End Function

Function conv_dec_hex(dec As Long) As String
'Déclaration des variables
Dim dec2 As Long 'dec2 : Valeur intermedaire (dec/16)
Dim Hexa As String 'Hexa : Caractere de Base 16 (1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, E, F)
'Initialisation des variables
Hexa = ""
'Initialisation du Test
Do While dec > 0 'Tanque dec > 0
    dec2 = Int(dec / 16) 'dec2 reçoit
        If dec - (dec2 * 16) = 10 Then ' Si dec - (dec2 * 16) = 10
            Hexa = "A" 'Hexa reçoit le caractere "A"
        ElseIf dec - (dec2 * 16) = 11 Then 'Si dec - (dec2 * 16) = 11
            Hexa = "B" 'Hexa reçoit le caractere "B"
        ElseIf dec - (dec2 * 16) = 12 Then 'Si dec - (dec2 * 16) = 12
            Hexa = "C" 'Hexa reçoit le caractere "C"
        ElseIf dec - (dec2 * 16) = 13 Then 'Si dec - (dec2 * 16) = 13
            Hexa = "D" 'Hexa reçoit le caractere "D"
        ElseIf dec - (dec2 * 16) = 14 Then 'Si dec - (dec2 * 16) = 14
            Hexa = "E" 'Hexa reçoit le caractere "E"
        ElseIf dec - (dec2 * 16) = 15 Then 'Si dec - (dec2 * 16) = 15
            Hexa = "F" 'Hexa reçoit le caractere "F"
        Else: Hexa = dec - (dec2 * 16) 'Sinon Hexa reçoit dec - (dec2 * 16)
        End If ' Fin de la boucle Si
    conv_dec_hex = Hexa & conv_dec_hex 'conv_dec_hex reçoit la valeur de la variable Hexa ajouté à la Valeur deja presente dans Result
    dec = dec2 'dec reçoit la valeur de la variable dec2
    Hexa = "" ' Mise à 0 de la varible Hexa
Loop
End Function

'Appel de la fonction :
'---------------------------

'Convertir Decimal en Hexadécimal :

'conv_dec_hex([valeur_a_convertir])

'Convertir Decimal en Binaire :

'conv_dec_bin([valeur_a_convertir])

'Convertir Decimal en Octale :

'conv_dec_oct([valeur_a_convertir])

Conclusion :


tout est dis je pense ;)

j'attends vos remarques

bug ? erreur ?

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.