[C] utiliser les bits
jojo
-
Tisiph0n3 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Tisiph0n3 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais savoir si quelqu'un connait un moyen plus prope de jouer avec des bits:
voilà, j'utilise une fonction get_bit(u_char wsp ,int pos)
if ((get_bit(wsp,8)==0) & (get_bit(wsp,9)==0) & (get_bit(wsp,10)==1) & (get_bit(wsp,11)==0 ))
printf("ok ca marche\n");
else printf("marche pas \n");
j'aimerais utiliser un masque pour réduire la taille de ma condition mais je ne sais pas vraiment comment faire???
j'aimerais savoir si quelqu'un connait un moyen plus prope de jouer avec des bits:
voilà, j'utilise une fonction get_bit(u_char wsp ,int pos)
if ((get_bit(wsp,8)==0) & (get_bit(wsp,9)==0) & (get_bit(wsp,10)==1) & (get_bit(wsp,11)==0 ))
printf("ok ca marche\n");
else printf("marche pas \n");
j'aimerais utiliser un masque pour réduire la taille de ma condition mais je ne sais pas vraiment comment faire???
A voir également:
- [C] utiliser les bits
- Winrar 64 bits - Télécharger - Compression & Décompression
- 32 bits - Guide
- Utiliser chromecast - Guide
- Clé windows 10 pro 64 bits gratuit - Guide
- Télécharger windows 7 32 bits usb - Télécharger - Systèmes d'exploitation
3 réponses
d'apres mes souvenirs en C pour faire un masque on fait sa
if (nombre & 0x08 == 0x08)
masque sur le bit 4
if (nombre & 0x09 == 0x09)
masque sur le bit 1 et 4
il me semble
if (nombre & 0x08 == 0x08)
masque sur le bit 4
if (nombre & 0x09 == 0x09)
masque sur le bit 1 et 4
il me semble
tu peux faire un masque grace à l'opérateur '&'.
if( !(wsp&0b0000000111100000) ) printf("ok");else printf("pasok");
en supposant que wsp soit coder sur 16 bits. Je n'ai pas testé, mais dans l'esprit c'est ça.
le '&' fait un ET logique bit à bit.
ou peut être :
if( !(wsp&(pow(2,8)+pow(2,9)+pow(2,10)+pow(2,11))) ) printf("ok");else printf("pasok"); en unsigned
if( !(wsp&0b0000000111100000) ) printf("ok");else printf("pasok");
en supposant que wsp soit coder sur 16 bits. Je n'ai pas testé, mais dans l'esprit c'est ça.
le '&' fait un ET logique bit à bit.
ou peut être :
if( !(wsp&(pow(2,8)+pow(2,9)+pow(2,10)+pow(2,11))) ) printf("ok");else printf("pasok"); en unsigned