Convertisseur decimal - binaire (algorithme de convertion détaillé) avec choix du format de mot en sortie

Description

Il s'agit d'un convertisseur Decimal/Binaire qui utilise le principe de la division par 2 (Voir Image), l'utilisateur choisit le format du mot en sortie

Source / Exemple :


'**************************************************************
'*                 Convertion Decimal/Binaire                 
'*                                                            
'*   Elements utilisés:                                       
'*   - 2 TextBox : txtNbBits, txtEntree                       
'*   - 3 GroupeBox : gpeBits, gpeDecimal, gpeResultat         
'*   - 1 Label : lblResultat                                  
'*   - 1 Button : btnConvertir                                
'*                                                            
'**************************************************************

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Code généré par le Concepteur Windows Form "

    Private Sub btnConvertir_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles btnConvertir.Click

        'Déclaration des variables
        Dim NbDecimal As Single
        Dim SolDivision As Single
        Dim SolModulo As Integer
        Dim i As Integer
        Dim Parite As Integer
        Dim NbDivisions As Integer
        Dim NbBits As Integer

        'Efface un eventuel résultat déjà présent sur lblResultat
        lblResultat.Text = ""

        If Not IsNumeric(txtEntree.Text) Or txtEntree.Text = "" Then
            'Afficher un message d'erreur si la donnée n'est pas de 
            'type numérique ou si txtEntree est vide
            MsgBox("Veuillez entrer un chiffre entier", _
            MsgBoxStyle.Exclamation)
        Else
            'Convertion de txtEntree.text en une variable de type Integer
            NbDecimal = CType(txtEntree.Text, Integer)
        End If

        If Not IsNumeric(txtNbBits.Text) Or txtNbBits.Text = "" Then
            'Afficher un message d'erreur si la donnée n'est pas de 
            'type numérique ou si txtnbBits est vide
            MsgBox("Veuillez entrer un chiffre entier", _
            MsgBoxStyle.Exclamation)
        Else
            'Convertion de txtNbBits.text en une variable de type Integer
            NbBits = CType(txtNbBits.Text, Integer)
        End If

        'Determination du nombre de divisions à effectuer
        NbDivisions = NbBits - 1

        For i = NbDivisions To 0 Step -1
            'Division classique par 2
            SolDivision = NbDecimal / 2
            'Division Modulo (Resultat entier arrondit par defaut)
            SolModulo = NbDecimal \ 2
            'Reaffectation de la variable NbDecimal
            NbDecimal = SolModulo

            'Test si SolDivision = SolModulo (Concrétement si le resultat 
            'SolDivision est entier),donc affecte la valeur "0" si le reste de 
            'la division est nul ou affecte "1" dans le cas contraire, avant 
            'le résultat précédent.
            If SolDivision = SolModulo Then
                lblResultat.Text = 0 & lblResultat.Text
            Else
                lblResultat.Text = 1 & lblResultat.Text
            End If
        Next

    End Sub

End Class

Conclusion :


Note:
Pour le fonctionnement allez voir la capture d'écran.

Mise à jour:
13/04/03
-Amélioration des commentaires
-Definition de l'ordre de tabulation

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.