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   -
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.
A voir également:

4 réponses

D_A_R_K_O_S Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci de la réponse c'est ce que je cherchais ! Mais que ce signifie "0X80" ?
1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est l'écriture en base hexadécimale : 0x80 = 128 = 0100 0000
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)
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
KX, le magicien des nombres,
0x8, c'est 1000 et pas 0100 ;-)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je suis si rouillé que ça ? 0x80 = 8x16 + 0 = 128 = 2^7 = 0100 0000
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Il faut croire que oui ^^.
2^7 fait bien 128, il faut donc positionner le 8ème bit et non le 7ème.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ok. Ok. Je vais mettre un peu d'huile dans mes rouages ;-)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
0
D_A_R_K_O_S Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   7
 
Ok merci pour ces explications !
0
Sugel Messages postés 4076 Date d'inscription   Statut Membre Dernière intervention   727
 
C'est fou ce que je peux me sentir c*n en lisant ce topic x)

ok, je sors ^^

->[]
0