Convertisseur décimal binaire hexadécimal octal

Description

Convertit en temps réel des nombres
décimaux, binaires, hexadécimaux et octaux.

Le code fourni sur cette page est composé de deux
fonctions ayant pour but de convertir un octet vers un code binaire et inversement.
Par exemple le caratère 'a' a pour code binaire 01100001 et inversement.

Source / Exemple :


''Ici une source pour convertir un Octet en binaire et inversement
Option Strict On
    Private Function VersBinaire(ByVal octet As Byte) As String

        ''Ici on converti un octet vers un code binaire

        Dim bb As String = "" '' 'bb' contiendra le code binaire de 'octet'
        Dim lo As Integer = 0 '' 'lo' servira de compte pour savoir si l'élement précedent a été noté en 1
        '' dans ce cas : lo sera incrémenté de 128 64 32 16 8 4 ou 2 sinon
        '' si l'élement précédent a été mis à 0, sa valeur restera inchangée.
        If octet >= 128 Then bb &= 1 : lo = 128 Else bb &= 0 : lo = 0 '' Si 'octet' est >= 128
        '' le premier bit est à 1 dans 'bb' et 'lo' contiendra 128
        If octet - lo >= 64 Then bb &= 1 : lo += 64 Else bb &= 0 : lo += 0 '' Pareil
        '' que précédemment : si 'octet' est >= 64 - 128 ou >= 64 - 0, alors noter '1' dans bb
        '' et incrémenter lo de 64
        If octet - lo >= 32 Then bb &= 1 : lo += 32 Else bb &= 0 '' et ainsi de suite
        If octet - lo >= 16 Then bb &= 1 : lo += 16 Else bb &= 0
        If octet - lo >= 8 Then bb &= 1 : lo += 8 Else bb &= 0
        If octet - lo >= 4 Then bb &= 1 : lo += 4 Else bb &= 0
        If octet - lo >= 2 Then bb &= 1 : lo += 2 Else bb &= 0
        If octet - lo >= 1 Then bb &= 1 Else bb &= 0 '' A la fin on peux noter que si le nombre
        '' est impaire, le dernier bit sera toujours égal à 1 sinon, paire -> 0
        ''Fin de l'algorythme, bb contient la code binaire de l'octet 'octet'

        Return bb '' La fonction renvoie bb

        '' Chr(octet) représente le caratère correspondant à la valeur de 'octet' (dans le tableau ASCII)
        '' octet peut aller de 0 à 255 inclus
        '' Hex(octet) converti 'octet' en hexadécimal
        '' le code binaire est expliqué ici :
        '' -128- 64- 32- 16-  8-  4-  2-  1  
        ''    1   0   0   0   0   0   0   0  - Ici on note une valeur de 128 car un 1 est à l'emplacement 128
        ''    1   0   0   0   0   0   0   1  - Ici on note une valeur de 129 car un 1 est à l'emplacement 128 et 1 à l'emplacement 1 (128+1)
        ''    1   0   0   0   1   0   0   1  - Ici on note une valeur de 137 car un 1 est à l'emplacement 128 et 1 à l'emplacement 8 et un 1 est à l'emplacement 1 (128+8+1)
        ''    0   0   0   0   0   0   1   1  - Ici on note une valeur de 3 car un 1 est à l'emplacement 2 et 1 à l'emplacement 1 (2+1)
        ''    1   1   1   1   1   1   1   1  - Ici on note une valeur de 255 -> 128+64+32+16+8+4+2+1
        '' Vous pouvez utiliser la calculatrice Windows pour compter
        '' en binaire octal hexadécimal ou décimal...

    End Function
    Private Function VersOctet(ByVal bits As String) As Byte

        ''Ici on converti un code binaire vers un octet
        'MessageBox.Show(bits.Length)

        ''''Vérification du code binaire
        If bits.Length <> 8 Then MessageBox.Show("Le code binaire ne correspond pas un octet") : Exit Function

        '' Vérification que bits a bien la longueur convenue (bits.length doit être égal à 8)

        For i = 0 To 7 : If bits(i) <> "0" And bits(i) <> "1" Then
                MessageBox.Show("Erreur de code binaire, le code binaire ne peut contenir que des 1 et des 0")
                Exit Function
            End If : Next i ''Vérification que bits contient bien des 0 ou des 1
        '''' Vous pouvez supprimer les vérifications si vous êtes sûr du code binaire à convertir

        Dim calcul As Byte = 0 ''Ici calcul contiendra le résultat

        If bits(0) = "1" Then calcul += CByte(128)
        If bits(1) = "1" Then calcul += CByte(64)
        If bits(2) = "1" Then calcul += CByte(32)
        If bits(3) = "1" Then calcul += CByte(16)
        If bits(4) = "1" Then calcul += CByte(8)
        If bits(5) = "1" Then calcul += CByte(4)
        If bits(6) = "1" Then calcul += CByte(2)
        If bits(7) = "1" Then calcul += CByte(1)

        Return calcul '' La fonction renvoie calcul

    End Function

    ''Utilisation :

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(VersBinaire(Asc("a")))
        '' Ou :
        'MessageBox.Show(VersBinaire(97))
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        MessageBox.Show(VersOctet("01100001").ToString)
        '' Ou :
        'MessageBox.Show(Chr(VersOctet("01100001")))
    End Sub

Conclusion :


Ce code peux servir à faire de la cryptographie,
je ne vois pas d'autre intérêt à par le coté ludique.

J'ai fait ce code parce que je n'arrivait pas
à trouver une fonction dans Visual Basic pour
faire ceci.

Maintenant c'est un convetisseur Décimal Binaire Hexadécimal Octal

Codes Sources

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.