Convertiseur binaire, hexa, octal et decimal

Soyez le premier à donner votre avis sur cette source.

Vue 7 467 fois - Téléchargée 472 fois

Description

Ce programme date de longtemps mais j'étais tanner de mettre des commentaires sur des sources quand je n'avais meme pas moi même poster une source alors ça va être a mon tour de me faire jugé :P

Je l'ai fait durant mon cour de binaire et hexa a l'école... c'est pour sa qu'il s'apelle Binaire2Hexa mais je l'ai évoluer avec le temps

Je ne connaissais pas la fonction Hex() et les autres s'il y en a alors j'ai tous fait a la main.

Donnez moi des commentaires svp...
Et je suis désoler si je n'ai pas mis de commentaire dans ma source car j'aime pas ben ben sa en mettre!!! Même si je sais que c'est important.

Source / Exemple :


'Exemple de code dans mon programme

Private Sub Bo_Binaire2Hexa_Click()
    Et_Hexa.Caption = ""
    Var_Len = Len(Zt_Binaire.Text)
    Var_OK = Var_Len / 4
    If Right(Var_OK, 2) = "25" Then Zt_Binaire.Text = "000" + Zt_Binaire.Text
    If Right(Var_OK, 2) = ",5" Then Zt_Binaire.Text = "00" + Zt_Binaire.Text
    If Right(Var_OK, 2) = "75" Then Zt_Binaire.Text = "0" + Zt_Binaire.Text
    Var_Len = Len(Zt_Binaire.Text)
    Do Until Var_Fois >= (Var_Len / 4)
        Var_Fois = Var_Fois + 1
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0000" Then Et_Hexa.Caption = Et_Hexa.Caption + "0"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0001" Then Et_Hexa.Caption = Et_Hexa.Caption + "1"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0010" Then Et_Hexa.Caption = Et_Hexa.Caption + "2"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0011" Then Et_Hexa.Caption = Et_Hexa.Caption + "3"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0100" Then Et_Hexa.Caption = Et_Hexa.Caption + "4"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0101" Then Et_Hexa.Caption = Et_Hexa.Caption + "5"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0110" Then Et_Hexa.Caption = Et_Hexa.Caption + "6"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "0111" Then Et_Hexa.Caption = Et_Hexa.Caption + "7"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1000" Then Et_Hexa.Caption = Et_Hexa.Caption + "8"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1001" Then Et_Hexa.Caption = Et_Hexa.Caption + "9"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1010" Then Et_Hexa.Caption = Et_Hexa.Caption + "A"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1011" Then Et_Hexa.Caption = Et_Hexa.Caption + "B"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1100" Then Et_Hexa.Caption = Et_Hexa.Caption + "C"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1101" Then Et_Hexa.Caption = Et_Hexa.Caption + "D"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1110" Then Et_Hexa.Caption = Et_Hexa.Caption + "E"
        If Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4) = "1111" Then Et_Hexa.Caption = Et_Hexa.Caption + "F"
    Loop
    Clipboard.SetText Et_Hexa.Caption 'Met la réponse dans le presse-papier
End Sub

'Apres modification :

Private Sub Bo_Binaire2Hexa_Click()
    Et_Hexa.Caption = ""
    Var_Len = Len(Zt_Binaire.Text)
    Var_OK = Var_Len / 4
    Select Case Right(Var_OK, 2)
        Case "25"
            Zt_Binaire.Text = "000" + Zt_Binaire.Text
        Case ",5"
            Zt_Binaire.Text = "00" + Zt_Binaire.Text
        Case "75"
            Zt_Binaire.Text = "0" + Zt_Binaire.Text
    End Select
    Var_Len = Len(Zt_Binaire.Text)
    Do Until Var_Fois >= (Var_Len / 4)
        Var_Fois = Var_Fois + 1
        Select Case Right(Left(Zt_Binaire.Text, (Var_Fois * 4)), 4)
            Case "0000"
                Et_Hexa.Caption = Et_Hexa.Caption + "0"
            Case "0001"
                Et_Hexa.Caption = Et_Hexa.Caption + "1"
            Case "0010"
                Et_Hexa.Caption = Et_Hexa.Caption + "2"
            Case "0011"
                Et_Hexa.Caption = Et_Hexa.Caption + "3"
            Case "0100"
                Et_Hexa.Caption = Et_Hexa.Caption + "4"
            Case "0101"
                Et_Hexa.Caption = Et_Hexa.Caption + "5"
            Case "0110"
                Et_Hexa.Caption = Et_Hexa.Caption + "6"
            Case "0111"
                Et_Hexa.Caption = Et_Hexa.Caption + "7"
            Case "1000"
                Et_Hexa.Caption = Et_Hexa.Caption + "8"
            Case "1001"
                Et_Hexa.Caption = Et_Hexa.Caption + "9"
            Case "1010"
                Et_Hexa.Caption = Et_Hexa.Caption + "A"
            Case "1011"
                Et_Hexa.Caption = Et_Hexa.Caption + "B"
            Case "1100"
                Et_Hexa.Caption = Et_Hexa.Caption + "C"
            Case "1101"
                Et_Hexa.Caption = Et_Hexa.Caption + "D"
            Case "1110"
                Et_Hexa.Caption = Et_Hexa.Caption + "E"
            Case "1111"
                Et_Hexa.Caption = Et_Hexa.Caption + "F"
        End Select
    Loop
    Clipboard.SetText Et_Hexa.Caption
End Sub

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
57
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

Eum, pour le français je comprend pas trop, je le trouve correcte, surtout qu'il n'y a pas beaucoup de mots la-dedans.

Mais ce que je voulais dire c'est plutot de faire une fonction au lieu d'un boutton. Bon, je donne un exemple plus clair:

Private Function Binaire2Hexa (byval nombrebinaire as string)
Ici ya tout le code pour convertir
Binaire2hexa = Nombre hexadécimal
End function

De cette façon, tu n'as qu'a mettre ca dans le boutton:
(ok, disons que tu le fais avec un msgbox par exemple)
msgbox "Le nombre hexadécimal est:" & Binaire2hexa(Zt_Binaire.Text)

C'est la particularité des fonctions, elle peuvent retourner une valeur et donc être utilisées presque comme des variables. Cela sert aussi de manière à ce que tu puisse mettre la fonction disons dans un module ou une dll (ca je ne connais pas ca, mais je crois que c'est possible). Comme ça tu peux convertir un nombre sans faire call bo_binaire2hexa_click et tu peux convertir un nombre qui n'est pas nécéssairement dans un endroit précis (tu n'as besoin que de la variable), et je répete que ça évite d'enlever ce qu'il y a déjà dans le clipboard. Bon, voila à peu près ce que devrais avoir l'air ton code (bon, c'est juste mon avis quand même, mais je crois que les autres membres seront d'accord):

Private Function Binaire2Hexa(ByVal nombre As String) As String
Dim nombrehexa As String
nombrehexa = ""
Var_Len = Len(nombre)
Var_OK = Var_Len / 4
Select Case Right(Var_OK, 2)
Case "25"
nombre = "000" + nombre
Case ",5"
nombre = "00" + nombre
Case "75"
nombre = "0" + nombre
End Select
Do Until Var_Fois >= (Var_Len / 4)
Var_Fois = Var_Fois + 1
Select Case Right(Left(nombre, (Var_Fois * 4)), 4)
Case "0000"
nombrehexa = nombrehexa + "0"
Case "0001"
nombrehexa = nombrehexa + "1"
Case "0010"
nombrehexa = nombrehexa + "2"
Case "0011"
nombrehexa = nombrehexa + "3"
Case "0100"
nombrehexa = nombrehexa + "4"
Case "0101"
nombrehexa = nombrehexa + "5"
Case "0110"
nombrehexa = nombrehexa + "6"
Case "0111"
nombrehexa = nombrehexa + "7"
Case "1000"
nombrehexa = nombrehexa + "8"
Case "1001"
nombrehexa = nombrehexa + "9"
Case "1010"
nombrehexa = nombrehexa + "A"
Case "1011"
nombrehexa = nombrehexa + "B"
Case "1100"
nombrehexa = nombrehexa + "C"
Case "1101"
nombrehexa = nombrehexa + "D"
Case "1110"
nombrehexa = nombrehexa + "E"
Case "1111"
nombrehexa = nombrehexa + "F"
End Select
Loop
Binaire2Hexa = nombrehexa
End Function

Et pour transformer un nombre binaire tu fais tout simplement nombrehexa = Binaire2hexa(nombrebinaire)

Bonne prog!
Messages postés
86
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

je ne comprend pas... j'écris français??? jme suis même forcer sur mes faute d'orthographe!!!

Merci pour vos commentaires!

Je vais tous le recorriger aujourd'hui... changer les IF par des Select Case et ajouter des commentaires.
Messages postés
29
Date d'inscription
lundi 22 mars 2004
Statut
Membre
Dernière intervention
29 janvier 2007

Ce code n'est pas terrible, ceci dit, MERCI DE BIEN VOULOIR ECRIRE FRANCAIS, ça ne serait pas mal du tout
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Ton code de conversion en hexa et vraiment lourd, tu peut t'y prendre par un calcul.
Messages postés
86
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007

Se code date de ya 2 ans et je ne connaisssais pas Select Case dans se temps la....

Mais c'est vrai que j'aurais pu l'adapter a se que je connais aujourd'hui avant de le poster...

et en passant Bo_Binaire2Hexa_Click() est un bouton alors impossible de mettre une variable! (messenble... logiquement)

Merci pour tes commentaire, j'en prend note!
Afficher les 7 commentaires

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.