• [^] # Re: un petit endien .. nagawika ...

    Posté par (site web personnel) . En réponse au message Lecture de fichier binaire. Évalué à 2.

    Tu as quand même un problème ici :
    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