Le_Chab | voila mon PB, je veux convertir des valeurs entieres en les reformatant sur un format choisi (ex 32 bits) et en isolant les poids faibles et poids fort.
exemple:MSG_SIZE=194 (soit c2 en hexa)
Code :
- formatIntegerIntoDataCodedOn32Bits(MSG_SIZE, 0, ByteStream);
- printf("\nByStream =%2.2x%2.2x%2.2x%2.2x",ByteStream0],ByteStream[1],ByteStream[2],ByteStream[3]);
|
avec : formatIntegerIntoDataCodedOn32Bits defini comme suit :
Code :
- void formatIntegerIntoDataCodedOn32Bits(int data, int k, char ByteStream[MAX_NUMBER_OF_CHAR_PER_LINE])
- {
- int high,low,pd1,pd2,pd0,rest;
- high=data/65536;
- //printf("\n high = %d",high);
- ByteStream[k]=(char)high;
- rest=data%65536;
- pd2=rest/4096;
- //printf("\n pd2 = %d",pd2);
- ByteStream[k+1]=(char)pd2;
- rest=rest%4096;
- pd1=rest/256;
- printf("\nor IntegerIntoDataCodedOn32Bits pd1 = %d",pd1);
- ByteStream[k+2]=(char)pd1;
- pd0=rest%256;
- printf("\nfor IntegerIntoDataCodedOn32Bits pd0 = %d",pd0);
- ByteStream[k+3]=(char)pd0;
- }
|
au lieu de m'afficher 000000c2
j'affiche 000000ffffffc2
quelqu'un saurait-il pourquoi ? Message édité par Le_Chab le 25-10-2002 à 15:00:47
|