Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTISSEUR DECIMAL - BINAIRE (ALGORITHME DE CONVERTION DÉTAILLÉ) AVEC CHOIX DU FORMAT DE MOT EN SORTIE


Information sur la source

Catégorie :Maths Source .NET ( DotNet ) Classé sous : convertisseur, décimal, binaire Niveau : Débutant Date de création : 09/04/2003 Date de mise à jour : 13/04/2003 21:01:24 Vu / téléchargé: 15 069 / 395

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • '**************************************************************
  • '* 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
'**************************************************************
'*                 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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de SamirAloui le 04/08/2006 17:34:16

Il y a qq poit il faut les respecter:
1- Il faut suivie les principe de programmation en Gene logiciel (L'independence de l'interface et le noyeau fonctionnel), alors tu peut ecrire un simple fonction de conversion avec des parametres de type ( integer, single, double,byte...etc) [tu peut redifiner la fonction] ensuite tu faire appele a cette fonction. chaqu'un l'utilise selon ses besoin et elle reste compatible avec toutes les objets de l'interface (TextBox, ou listes ou simple variable)
et le code sera
---------------------------------------------------------
public fonction ToBinary(byval nbr as Integer)as String
   dim conv as string=""
   Do
     conv=(nbr Mod 2) & conv
     nbr=nbr \ 2
   Loop While nbr>0
end function
-------------------------------------------------------------
puis faire les teste si toute est correcte Alors
--------------------------------------------------------------
   lblResultat.Text = ToBinary(Ctype(txtEntree.Text,Integer))
--------------------------------------------------------------

2- Il faut savoire que la boucle "DO....LOOP" est plus plus rapide que la boucle "FOR.....NEXT", pour ça essayer toujour d'éviter la boucle "FOR" on la traduit en boucle "DO WHILE"

Mais il reste toujour une bonne essaye. Continue

signaler à un administrateur
Commentaire de SamirAloui le 04/08/2006 17:36:25

desolé j'ignore la ligne
---------------
  return (conv)
---------------
dans la fin du fonction ToBinary.   deso deso desolé

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Binaire, décimal et hexadécimal [ par SpringsEyre ] SpRiNgS EyReSalut tout le monde. Je suis un ptit nouveau. J'ai envie de me faire moi même un convertisseur bin dec hexa, j'ai vu pleins de sources la conversion décimal binaire [ par Maryse ] je cherche à convertir un nombre décimal en binaire. - Y-a-t il une syntaxe particulière pour les nbes binaires ?(pour l'hexa c'est &HHHH&)- Y Lecture d'un pin déterminé du Status du port parallele - Conversion décimal/binaire [ par raysat ] Salut,Le fait est que j'ai besoin de lire un certain pin caractéristique d'un régistre et je n'arrive qu'à lire la valeur de l'ens Conversion binaire en décimal [ par DDelec24 ] Bonjour tout le monde.J'ai un soucis avec l'un de mes codes, je n'arrive pas a trouvé pourquoi ca ne fonctionne pas.J'ai donc un textbox(txtBinaire) o convertisseur binaire > hexa [ par mahowi ] hello a tous !j'ai un travail en cours mais je suis coincé avec mon convertisseur de bases.passer de bianaire en hexa ( hou la la!!) le reste ça joue Décimal -> Binaire [ par Albert ] Bonjour,je voudrais convertir une variable de type Variant (et décimal) en valeur binaire dans un champ Text... Comment faire?Je n'ai trouvé que le mo Aidez moi please pour les form et les form binaire [ par Cyberdevil ] Est ce que qqun connait la structure des fichier frx pour les combo box ????Merci de répondre c urgent ++Cyberdevil est ce qu'il ya un convertisseur de vb au kylix ou delphi [ par Elwaaarine ] est ce qu'il ya un convertisseur de vb au kylix ou delphis'il existe pouvez vous m'indiqué ou est ce que je peux le téléchargermerci d'avance Convertisseur DVD -> AVI (Divx) :) [ par MOA ] URL :http://deltasoftfr.free.fr/URL DOWNLOAD : http://deltasoftfr.free.fr/downloads/convertdvdfile.php3#21_betaDESCRIPTION :Utilitaire GUI (Graphical Convertisseur DVD -> AVI (Divx) :) [ par MOA ] MERCI DE ME DIRE LES BUGS DU LOGICIELS (V2.1 BETA)URL :http://deltasoftfr.free.fr/URL DOWNLOAD : http://deltasoftfr.free.fr/downloads/convertdvdfile.p


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,686 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.