IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

Problème conversion décimale binaire


Sujet :

Visual Studio

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 124
    Points : 47
    Points
    47
    Par défaut Problème conversion décimale binaire
    Bonjour à tous
    Je suis en train de réaliser un programme Windows forms sous VB.
    Une des consignes est d'afficher dans un label en binaire.
    J'ai trouvé sur internet une fonction pour convertir un nombre en binaire, mais elle n'est pas parfaite.
    Elle ne tient pas compte des 4 bits ni des points entre 4 bits.
    Donc au lieu de 0001.0000 j'ai 10000

    Je pensais avoir résolu le problème des 4 bits mais ça me fait une boucle infinie si le nombre est supérieur à 15...
    Voici le code :
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    labbinaire.Text = Convert.ToString(CInt(txtNombre.Text), 2) 'convertion en décimale
            labhexa.Text = UCase(Convert.ToString(CInt(txtNombre.Text), 16)) 'conversion en hexadécimale
            Do While Len(labbinaire.Text) = 4 Or Len(labbinaire.Text) = 8 Or Len(labbinaire.Text) = 12 Or Len(labbinaire.Text) = 16
                labbinaire.Text = "0" & labbinaire.Text
            Loop
    End sub
    labbinaire.Text c'est un label où est affiché le nombre en binaire.
    txtNombre.Text c'est le nombre en décimale

    J'ai essayé avec 3 If de suite et ça marche, mais c'est long pour rien.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If Not Len(labbinaire.Text) = 4 Or Len(labbinaire.Text) = 8 Or Len(labbinaire.Text) = 12 Or Len(labbinaire.Text) = 16 Then
          labbinaire.Text = "0" & labbinaire.Text
    End If
    If Not Len(labbinaire.Text) = 4 Or Len(labbinaire.Text) = 8 Or Len(labbinaire.Text) = 12 Or Len(labbinaire.Text) = 16 Then
          labbinaire.Text = "0" & labbinaire.Text
    End If
    If Not Len(labbinaire.Text) = 4 Or Len(labbinaire.Text) = 8 Or Len(labbinaire.Text) = 12 Or Len(labbinaire.Text) = 16 Then
          labbinaire.Text = "0" & labbinaire.Text
    End If

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    J'ai trouvé sur internet une fonction pour convertir un nombre en binaire, mais elle n'est pas parfaite.
    Quelle est cette fonction ? Je n'en vois pas dans ton code.

    Elle ne tient pas compte des 4 bits ni des points entre 4 bits.
    Donc au lieu de 0001.0000 j'ai 10000
    Pas compris ?? je pense que tu ne dois pas utiliser le bon vocabulaire, bits digits décimale....

    J'ai essayé avec 3 If de suite et ça marche, mais c'est long pour rien.
    Je doute que ces 3 if soit vraiment long a s'exécuter...

    Bref j'ai pas tout à fait compris ce que tu veux faire à la vue de ton code et de tes explications, mais si je me concentre sur
    Une des consignes est d'afficher dans un label en binaire.
    Je me dit que tu as un exercice ou tu dois convertir une valeur numérique saisie dans une zone de texte en valeur binaire ? j'ai bon ?

    Sinon un conseil, utilise des variables et ne travail pas directement sur la propriété Text des controls. Et utilise les fonctions, la tu ne devrais qu'avoir une fonction qui prend un entier en paramètre et retourne un string (dans lequel il y aura l'entier convertie en binaire.

    Bon code,
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 124
    Points : 47
    Points
    47
    Par défaut
    Tu tombe mal, je viens de faire mon programme à l'instant... mais merci quand même.
    PS : je parle bien de bits

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 124
    Points : 47
    Points
    47
    Par défaut
    J'ai oublié un détail.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MsgBox("Voulez vous vraiment effacer ?", MsgBoxStyle.YesNo, "Vider")
    lstbPremiers.Items.Clear()
    Je voulais que si je clic sur "oui" ça vide le listbox, et si je clic sur "non", ça ne fait rien.
    Mais là oui et non vident le listbox...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Tu tombe mal
    Désolé de déranger
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il faut regarder si le retour de l'appel à MsgBox est égal à MsgBoxResult.Yes.

    Pour ton premier souci, pense à marquer le sujet comme résolu si t'as trouvé, pour que les helper ne perdent pas leur temps.
    Et pense bien à indiquer la solution, pour que des personnes qui auraient le même problème sachent comment tu as fait.

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 124
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par jopopmk Voir le message

    il faut regarder si le retour de l'appel à MsgBox est égal à MsgBoxResult.Yes.
    Comment savoir si le retout de l'appel à MsgBox est égal à MsgBoxResult.Yes?
    ça signifie quoi?


    Citation Envoyé par jopopmk Voir le message

    Pour ton premier souci, pense à marquer le sujet comme résolu si t'as trouvé, pour que les helper ne perdent pas leur temps.
    Et pense bien à indiquer la solution, pour que des personnes qui auraient le même problème sachent comment tu as fait.
    Si je le fais, on peut encore répondre?

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    [QUOTE=idiart33;8765780]Comment savoir si le retout de l'appel à MsgBox est égal à MsgBoxResult.Yes?
    ça signifie quoi?

    Avec une MessageBox

    Avec une MsgBox
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    oui, même si tu marques comme résolu on peut continuer à discuter (toutefois on préfère un topic par question en général).

    Pour le retour dont je parle, il faut voir que MsgBox est une fonction, elle renvoie donc une valeur que tu peux interpréter.
    Alors je suis pas bien doué en VB.NET (mon langage .NET c'est plutôt le C#) mais ça pourrait donner un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If MsgBox("Voulez vous vraiment effacer ?", MsgBoxStyle.YesNo, "Vider") =  MsgBoxResult.Yes Then
       lstbPremiers.Items.Clear()
    EndIf
    edit : grillé par clementmarcotte, qui en plus file les liens qui vont bien vers la MSDN
    Plus je connais de langages, plus j'aime le C.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 124
    Points : 47
    Points
    47
    Par défaut
    Merci c'est bon ça fonctionne !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion décimal à binaire
    Par Invité dans le forum Ada
    Réponses: 2
    Dernier message: 17/08/2009, 15h09
  2. Conversion décimal-binaire ?
    Par fomazou dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/01/2009, 10h15
  3. Réponses: 3
    Dernier message: 28/12/2006, 15h06
  4. Conversion Décimal -> Binaire
    Par Z-Vegeta dans le forum Pascal
    Réponses: 2
    Dernier message: 22/12/2006, 23h10
  5. Algo Conversion Décimal -> Binaire
    Par MisterTee dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 23/02/2006, 22h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo