Bonjour,
comment faire pour tester un bit d'une variable (le 8eme bit)
est ce que ces deux lignes font la meme choses ?
uint8_t a;
if (a & 0x80)
ou
if(a & (1 << 0x80))
ce code (1 << 0x80) veut dire de positionner le 8eme bit a un ou faire un decalage 128 fois ?
si les bits sont indexer a 0, ceci est valable pour tester le 8eme bit
if (a & (1 << 7)) ? ou if(a & (1 << 8)) ?
Merci.
if (bitRead (variable,8))
oui je sais mais sans passer par une macro
[edit]
donc c'est bien if (a & (1 << 8))
#define bitcheck(byte,nbit) ((byte) & (1 << (nbit)))
Merci.
kamill
December 24, 2023, 5:18pm
4
Bonjour,
Non.
La numérotation des bits commence à 0, le 8eme bit est le bit numéro 7.
C'est donc
if (a & (1 << 7))
je revient sur ce post, j'ai vu dans certain code ceci:
value >>= 2;
ca signifie quoi ?
déjà c'est un décalage à droite mais le = veut dire quoi ?
après recherche va voudrait dire cela
value = value >> 2
vileroi
December 28, 2023, 8:22pm
8
De façon générale
valeur opérateur= donnée
est équivalent à
valeur = valeur opérateur donnée
C'est bon pour la plupart des opérateurs à deux opérandes.
Ca VEUT dire ça
merci pour la confirmation, j'ai vu rarement avec le signe >>, mais en effet c'est standard C la plus part du temps.
system
Closed
June 25, 2024, 8:36pm
10
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.