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 :

Bytes et opéarateur binaire


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Par défaut Bytes et opéarateur binaire
    Bonjour à tous !

    Dans le cadre de mes cours, je doit réaliser une calculatrice de grand nombres avec une mémoire optimisé.

    Pour ce faire nous avons la contrainte de créer une structure nommé DoubleDigit nous permettant de stocker deux digit dans un seul byte.
    Comme vous le savez un byte est composé de 8 bit, sur 4 bits nous pouvons coder 16 valeurs par Digit !

    J'ai quelques problèmes de compréhension sur les opérateurs binaire >> et << pour le décalage d'octet et j'aurais aimer obtenir vos avis sur quelques lignes de code !

    Premièrement, sur ma structure DoubleDigit, elle prend en paramètre deux Digit ( convertie en binaire préalablement ) et doit les réunir dans un seul et unique Byte.

    Exemple :
    Je rentre dans ma calculatrice "10".
    Il y a ici deux digit soit "1" et "0".
    Convertie en binaire j'obtient donc :
    1 = 0000 0001
    0 = 0000 0000

    Voila donc les deux paramètre pour le constructeur de ma structure. Je doit désormais effectuer une sorte de "concaténation" pour recuperé :
    - les 4 derniers bit de "1" pour les mettre a la place des 4 premiers bits du Byte retourné de ma structure
    - les 4 derniers bits de "0" pour les mettre a la place des 4 derniers bits du Byte retourné de ma structure

    1 = 0000 0001
    0 = 0000 0000

    Byte sortant : 0001 0000

    Voici mon constructeur actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       public Nom_de_ma_Structure (byte Premier_Digit, byte Deuxieme_Digit)
                {
                    dDigit = Deuxieme_Digit;        //On met dans dDigit la valeur du deuxième digit 
                    dDigit >>= 4;                       //On décale de 4 bits vers la gauche
                    dDigit = Premier_Digit;          //On inscrit le premier digit  
                }
    Je ne sait pas du tout si mon utilisation de l'opérateur est valable ou si il faut que je décale également de 4 bits le Premier_Digit..
    Pour les autres problèmes, j'attendrais de voir vos réponse pour tenter de le résoudre par moi même dans un premier temps.

    Merci d'avance pour votre aide précieuse !

  2. #2
    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
    Je suis peut-être débile, mais il me semble que >> décale vers la droite et non vers la gauche.

    Non ?

    Sâchant qu'ensuite, il faut faire une addition (ou alors un OR binaire), sinon, ton double digit sera toujours égal à Premier_Digit

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public Nom_de_ma_Structure (byte Premier_Digit, byte Deuxieme_Digit)
    {
        dDigit = (Premier_Digit << 4) | Deuxieme_Digit;
    }

    Non ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Par défaut
    Oui vous avez raison, une érreur de ma part pour le >> a la place de <<.

    J'avais en effet trouvé cette solution que vous me proposez là. Merci à vous !

    J'avais, lors de l'ouverture de ce sujet plusieurs questions a ce sujet, y compris la manière de pouvoir récupérer les données a l'aide de Get, j'ai résolu mon problème en y appliquant des masques binaire =)

    Merci beaucoup !

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

Discussions similaires

  1. Convertir une suite binaire (string) en byte ?
    Par clement1010 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 23/11/2011, 19h16
  2. Réponses: 15
    Dernier message: 14/08/2009, 15h45
  3. Réponses: 8
    Dernier message: 20/03/2006, 00h56
  4. Convertir des bytes en binaire ...
    Par Battosaiii dans le forum C
    Réponses: 2
    Dernier message: 18/03/2006, 16h47
  5. Réponses: 2
    Dernier message: 06/12/2005, 13h01

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