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 :

[VS 2005] Manipuler des bits


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Développeur .Net, Administrateur système
    Inscrit en
    Octobre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .Net, Administrateur système
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 219
    Points : 135
    Points
    135
    Par défaut [VS 2005] Manipuler des bits
    Bonjour,


    j'ai besoin pour mon application de manipuler des données au niveau binaire.

    Je dois par exemple récuperer le bit le plus faible d'un octet pour remplacer le bit le plus fort d'un autre octet. Je dois donc pouvoir intervenir au niveau binaire et pouvoir stocker et modifier ces bits..

    j'ai réussi dans un premier temps a passer de ma chaine de caractère a un tableau de bytes (octets) mais pour le reste (l'acces et la modification des bit et octet en mémoire) je sèche...

    Merci pour votre aide !!

  2. #2
    Membre émérite

    Inscrit en
    Novembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2006
    Messages : 128
    Points : 2 624
    Points
    2 624
    Par défaut
    Imaginons que ton byte soit égal à : 0xff.
    Tu veux inverser le dernier bit (tu auraas donc 0xfe). Pour cela, tu peux faire b = (byte)((int)b ^ 0x1);
    Si tu veux inverser le premier bit, tu fais
    b = (byte)((int)b ^ 0x80);
    Si tu veux forcer le dernier bit à 0, tu fais
    b = (byte)((int)b & 0xfe);
    etc.

  3. #3
    Membre habitué
    Profil pro
    Développeur .Net, Administrateur système
    Inscrit en
    Octobre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .Net, Administrateur système
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 219
    Points : 135
    Points
    135
    Par défaut
    Merci beaucoup mais je galère toujours...!

    Septet 1 : 110 1000 : (h)
    Septet 2 : 110 0101 : (e)
    Septet 3 : 110 1100 : (l)

    Je dois prendre le dernier bit du Septet 2 et le mettre devant le Septet 1. Je dois ensuite prendre les deux derniers bit du Septet 3 et les mettre devant le Septet 2. Le septet 3 sera ecorché mais ce n'est pas un souci..

    Ce qui donnera des octets au final :

    Octet 1 : 1 1101000
    Octet 2 : 00 110010
    Octet 3 : 000 11011


    Je dois répéter l'opération pour autant de Septet en entrée et ce en incrémentant le nombre de bit copiés du septet n+1 vers le septet n jusqu'à 7.


    Comment disposer d'un tableau Binaire de chez binaire en C# ?


    Merci !!

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    tu prends la classe BitArray et basta...

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre habitué
    Profil pro
    Développeur .Net, Administrateur système
    Inscrit en
    Octobre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .Net, Administrateur système
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 219
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par theMonz31
    tu prends la classe BitArray et basta...

    The Monz, Toulouse

    Merci beaucoup !! Ca marche bien ; j'ai juste encore une petite question !

    j'ai vu que l'opérateur ">>" ou "<<" permettait de faire un décallage de n bits vers la droite ou vers la gauche.

    Or j'ai testé et il ne peut s'appliquer a un byte...

    C'est normal ou Ya un truc que j'ai pas capté ?

    Merci encore !!!

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    euh

    si je fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte a = ((byte)2) << 2;
    J'obtiens en resultat a = 8
    (logique, car je décale 2 fois vers la gauche ce qui revient à faire 2 multiplications par 2 ( donc * 4)...

    Donc, le décalage marche bien

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

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

Discussions similaires

  1. fonction de manipulation des bits
    Par hadiya dans le forum C++/CLI
    Réponses: 1
    Dernier message: 14/03/2014, 14h02
  2. manipulation des bits
    Par deMonHunTer dans le forum C
    Réponses: 9
    Dernier message: 12/01/2010, 22h11
  3. Manipulation des bits
    Par JLC83 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/01/2010, 13h33
  4. Manipulation des bits
    Par BatuBou dans le forum C
    Réponses: 17
    Dernier message: 11/01/2008, 19h24
  5. Manipuler des bits
    Par line86 dans le forum C
    Réponses: 9
    Dernier message: 21/10/2007, 21h18

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