Octets et masque de bits

Résolu
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 7 août 2007 à 14:29
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 7 août 2007 à 21:45
Bonjour,

Voila j'ai un probleme sur un petit programme qui récupére dans un buffer des octets :  BYTE buffer[255]

et je voudrais savoir comment a partir de l'octet 1 : buffer[0] , est il possible de connaitre la valeur du bit 1 puis 2 et 3 etc....

et pareil pour les autres octets ensuite?

merci de m'expliquer ceci !!!!

 

2 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
7 août 2007 à 14:39
On peut les tester comme ceci:

if(buffer[0] & 1) // premier bit est à 1
else   // il est à 0

if(buffer[0] & 8) // 4ème bit est à 1
else // il est à 0

if(buffer[0] & 64) // 7ème bit est à 1
else // il est à 0

1 -> 1er bit
2 -> 2ème bit
4 -> 3ème bit
8 -> 4ème bit
16 -> 5ème bit
32 ->6ème bit
64 -> 7ème bit
128 -> 8ème bit

C++ (@++)
3
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
7 août 2007 à 21:45
pour avoir le i-eme (le 1er est a 0) bits de a variable x (buffer[0]) tu dois faire x & (1 << i)
ceci est non nul si bit=1 et nul sinon (bit=0)

Pourquoi faire simple quand on peut faire compliqué ?
0
Rejoignez-nous