Travailler sur les nombres binaires
Résolu
D_A_R_K_O_S
Messages postés
98
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjours, je débute la programmation en C et j'ai trouver sur internet un code - qui marche - qui décale les bits d'un caractère.
"c<<= 1; décale les bits du caractère c une fois, mais que fait "unsigned char msb = (c & 0x80) >> 7;" ? Qu'est ce que ça signifie ?
CODE :
unsigned char msb = (c & 0x80) >> 7; /* Le bit le plus a gauche */
c <<= 1;
c |= msb;
return c;
Merci d'avance pour vos réponses.
"c<<= 1; décale les bits du caractère c une fois, mais que fait "unsigned char msb = (c & 0x80) >> 7;" ? Qu'est ce que ça signifie ?
CODE :
unsigned char msb = (c & 0x80) >> 7; /* Le bit le plus a gauche */
c <<= 1;
c |= msb;
return c;
Merci d'avance pour vos réponses.
A voir également:
- Rémi et safia ont découvert le code binaire
- Code ascii - Guide
- Code binaire - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
Du coup en faisant un & seul le 7è bit est conservé (tout le reste étant à 0), donc avec le décalage de 7 bits à droite on ne peut obtenir que deux valeurs : 0 ou 1 (la valeur du 7è bit au départ)
0x8, c'est 1000 et pas 0100 ;-)
2^7 fait bien 128, il faut donc positionner le 8ème bit et non le 7ème.