Il faudrais que tu passes d'entier court en entier en le spécifiant. Par exemple: short v ;
assert(sizeof(v)==2) ; // petit controle au cas ou
fread(&v,sizeof(v),1,data_file);
printf("%02X ",(unsigned int)v);
Je ne sais plus comment il joue avec le bit de poids fort lorsqu'il passe d'un signé à un non-signé plus long, mais tu peux éventuellement forcer les bits qui ne te concernent pas à zéro: unsigned int uv = (unsigned int)0x00FFFF & (unsigned int)v ;
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: un petit endien .. nagawika ...
Posté par lolop (site web personnel) . En réponse au message Lecture de fichier binaire. Évalué à 2.
printf("%02X ",*((short int *)ptr));
%X c'est destiné à afficher, sous forme hexa, des entiers non signés, et là tu donne un entier court signé.
http://www.opengroup.org/onlinepubs/007908799/xsh/fprintf.ht(...)
Il faudrais que tu passes d'entier court en entier en le spécifiant. Par exemple:
short v ;
assert(sizeof(v)==2) ; // petit controle au cas ou
fread(&v,sizeof(v),1,data_file);
printf("%02X ",(unsigned int)v);
Je ne sais plus comment il joue avec le bit de poids fort lorsqu'il passe d'un signé à un non-signé plus long, mais tu peux éventuellement forcer les bits qui ne te concernent pas à zéro: unsigned int uv = (unsigned int)0x00FFFF & (unsigned int)v ;
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN