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
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.