salut à tous et a toutes ,


J'ai un programme en C qui doit afficher 2 octets à partir d'un tableau de données , j'ai utiliser & 0xFF mais j'ai le que le prmeiere octet qui est afficher seulement .

& 0xFF c'est %255 en décimal ou 11111111 en langage binaire ,donc les premiers 8bits à 1 .


le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
struct  ma_structure_s
{
 
unsigned int buf;
byte ligne[16];
 
}ma_structure_t;


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
byte Mes_Donnees[]={ 
 
0x11,0x22,0x00,0x00,	
0x19,0x77,0x38,0x15,0x35,0x11,0x22,0x97,0x19,0x77,0x38,0x15,0x35,0x11,0x22,0x97,
 
 
};


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#define NB_ELEMENTS 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
int ma fonction ( void)
 
{
 
int i; 
 
ma_structure_t    *p;
p = (ma_structure_t *) Mes_Donnees;
 
 
 
	for(i=0; i<NB_ELEMENTS i++)
        {
		if((p->buff & 0xFF) 
		p++;
 
           printf (" Buff : %02X %02X",p->buff & 0xFF);
	}
 
 
 
 
}
Le but du code c'est d'afficher 11 22 à l'ecran , j'ai changer la valeur de buff de unsigned int à byte [0x02] mais j'ai pas les données souhaitées qui sont affichées .
Par contre pour afficher la ligne 16 Octets qui commence par 19 77 38 la j'ai aucun soucis à le faire .
Je n'ai jamais travailler avec ET " &" et "0xFF" pour la représentation de données en C .
La ligne est déclarée au tant que byte array et buff est déclarer au tant que unsigned int , je ne sais pas si c'est d'ici que se pose le probléme principale .



Merci pour vos différents conseils et suggéstions .