• # Motorola-Intel

    Posté par . En réponse au message lecture fichier binaire en fortran et inversion d'octets. Évalué à 4.

    Tu est victime des indiens, les petits et les grands.
    (joke) en fais le stockage d'un 32bits ou plus en taille peut se faire de deux facons, little-indian et big-endian qui sont la contraction de little-in-the-end et bigger-in-the-end.
    Sur un machine intel (comme ton PC) les deux/quatres octets qui definisse un int (taille a voir en fortran) sont big-endian. Je suppose que la machine linux de ton correspondant travaille en little-indian(mac?).

    Exemple soit la valeur 2335 en decimal qui se traduit en hexa :091F

    dans ton fichier si tu lis octet par octet tu va lire
    09 puis 1F (si le fichier est big indian)
    si tu lis int par int tu va lire
    1F09 a cause le l'inversion

    en plus simple, lis ton fichier octet par octet, determine la taille d'un int du systeme (2 ou 4 octet) et tu fais
    monint= octet[0]*256+octet[1]
    ou
    monint= octet[1]*256+octet[0]
    pour passer d'un systeme a l'autre

    dans ton cas, tu dois lire 1F puis 09
    a transforme par
    monint= octet[1]*256+octet[0]
    pour obtenir 091F