nomenclature C

nomenclature C - C - Programmation

Marsh Posté le 03-05-2006 à 12:31:01    

salut,
 
je dois analyser un programme C mais n'ayant pas beaucoup fait de C il y a qqles instructions dont je ne comprend pas le sens (les instructions 1 à 4):
 
int data;                       // entier
unsigned int *puCRC;      // pointeur sur entier non signé
 
1. data <<=6;                     // affectation ??
2. *puCRC ^=data;              // ??
3. *puCRC >>= 8;                // ??
4. data = (data^(*puCRC));  // ??

Reply

Marsh Posté le 03-05-2006 à 12:31:01   

Reply

Marsh Posté le 03-05-2006 à 12:33:04    

">>" et "<<"sont des opérateurs de décalage de bit
"^" est le XOR
 
quand on ajoute "=" , on affecte le résultat à l'opérande de gauche

Reply

Marsh Posté le 03-05-2006 à 14:14:11    

marcellus911 a écrit :

salut,
 
je dois analyser un programme C mais n'ayant pas beaucoup fait de C il y a qqles instructions dont je ne comprend pas le sens (les instructions 1 à 4):
 
int data;                       // entier
unsigned int *puCRC;      // pointeur sur entier non signé
 
1. data <<=6;                     // affectation ??
2. *puCRC ^=data;              // ??
3. *puCRC >>= 8;                // ??
4. data = (data^(*puCRC));  // ??


 
1. peut s'écrire aussi data=data << 6
2. peut s'écrire aussi *puCRC=(*puCRC) ^ data
3. peut s'écrire aussi *puCRC=(*puCRC) >> 8
 
Le décalage de bits revient à décaler vers la droite (ou vers la gauche) les bits d'une expression
Ex: a=3 => a=00000011 (en binaire)
a << 3 => 00011000 soit 24
Décaler de "n" bits vers la gauche revient à multiplier la valeur par 2^n
Décaler de "n" bits vers la droite revient à diviser la valeur par 2^n (il faut prendre en compte le bit de signe si l'opérande est signé mais ce pb ne te concerne pour l'instant pas)
 
 

_darkalt3_ a écrit :

"^" est le XOR


Le XOR se fait bit à bit sur les deux opérandes
Ex: a=3 (0011) et b=5 (0101)
a^b => 0011 XOR 0101 (bit par bit) => 0110 soit 6


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed