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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 39 960 fois - Téléchargée 37 fois

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

Ajouter un commentaire

Commentaires

cs_EBArtSoft
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
5 -
Decimal vers hexadecimal :

b = hex(a)

Hexadeciamal vers decimal :

a = val("&H" & b)

Decimal vers Octal :

c = oct(a)

Octal ver decimal :

a = val("&O" & c)

Hexa vers octal :

c = oct(val("&H" b))

etc...

pourquoi reinventer la roue ;)
@+
bidoch78
Messages postés
67
Date d'inscription
mercredi 27 février 2002
Statut
Membre
Dernière intervention
2 décembre 2005
-
:-)
JJDai
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
-
j'allais le dire
nairolf_88
Messages postés
11
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
8 mars 2006
-
Pour vous repondre je suis en BTS informatique de gestion et cette source et un TP qu'on a eu a realiser en classe pour assimiler les composant de base de VB.

Voila comment j'y aie repondu

@++ nairolf
cs_emma16
Messages postés
61
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
23 juin 2006
-
je suis dans un cas particulie, voila je voudrai connaitre la fonction toute faite qui permet de passer de décimal en binaire et inversement

merci d'avance

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.