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

C# Discussion :

Problème avec binary data en C#


Sujet :

C#

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut Problème avec binary data en C#
    Je développe maintenant une application en C#, sur l’application il y a un bouton ‘Suivant’ qui se répète 6 fois (c’est à dire quand on clique sur ‘Suivant’, y a une autre apparaît). Et à chaque bouton correspond à une bite 0 ou 1 que j’ai stocke dans une variable à chacun.
    Donc, à la fin, je voudrais avoir des bits de genre ‘010011’ (suivant les bits obtenues sur chaque bouton) pour que je puisse le convertir en décimal (ça veut dire 19).

    Est ce que quelqu’un peut m’aider
    Merci par avance

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Si tes boutons positionnent des booleans, tu peux faire ça par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static byte ByteFromBoolArray(bool[] bools)
    {
    	byte value = 0;
    	for (byte i = 0; i < 8; i++)
    	{
    		value |= (byte)((bools[i] ? 1 : 0) << i); 
    	}
    	return value;
    }

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // A chaque bouton :
    nombre << 1;
     
    // Si le bouton vaut 1
    nombre++; // ou nombre |= 1;

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    Perso d'après ce que je comprends il te faut un fonction dans laquelle tu envois ton code binaire (010011) et qui te retourne la valeur en décimal (19)

    Je te propose ça si ça peut t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
            public static int convertBin2Dec(string binaire)
            {
                int taille = binaire.Length;
                int puissance = taille - 1;
                int soustotal;
                int total = 0;
                if (binaire == "1") 
                { 
                    total = 1; 
                }
                else
                {
                    if (binaire == "0")
                    { 
                        total = 0; 
                    }
                    else
                    {
                        for (int i = 0; i < taille; i++)
                        {
                            if ((puissance >= 0) && (binaire[i] == '1'))
                            {
                                soustotal = (int)System.Math.Pow(2, puissance);
                                puissance -= 1;
                                total += soustotal;
                            }
                            else
                            {
                                puissance -= 1;
                            }
                        }
                    }
                }
                return total;
    }
     
            private void button1_Click(object sender, EventArgs e)
            {
                convertBin2Dec("010011");
            }

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    Damn...
    il faut que j'apprenne à mieux lire désolé pour ma réponse HS

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Lookoum Voir le message
    Perso d'après ce que je comprends il te faut un fonction dans laquelle tu envois ton code binaire (010011) et qui te retourne la valeur en décimal (19)
    C'est possible mais dans ce cas ton code est d'une complication inutile.

    Pour faire ce que tu dis, le plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static byte ByteFromStringMask(string s)
    {
    	byte value = 0;
    	for (byte i = 0; i < Math.Min(8, s.Length); i++)
    	{
    		value |= (byte)((s[i] == '1' ? 1 : 0) << i);
    	}
    	return value;
    }
    A adapter suivant le fait qu'il veuille les valeurs de gauche en bit fort ou faible, etc .....

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut
    Hi all,

    C'est Nickel, merci pour votre aide les gars!!!

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

Discussions similaires

  1. Probléme avec load data infile
    Par Moez.B dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/08/2006, 10h01
  2. [MySQL] Problème avec LOAD DATA INFILE
    Par Pgs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/07/2006, 15h33
  3. Problème avec MySQL.Data
    Par MABB dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 08/04/2006, 18h41
  4. problème avec load data local
    Par afrikha dans le forum Débuter
    Réponses: 2
    Dernier message: 28/10/2005, 18h36
  5. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59

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