• # petit complément

    Posté par (site web personnel) . En réponse au journal Un décalage de 64 bits, ça vous inspire comment ?. Évalué à 8. Dernière modification le 14 mai 2017 à 18:08.

    Salut !

    Bon comme je suis cité dans ton journal je me dois de réagir :)

    D'abord merci pour avoir partagé cette remarque ici.
    Petit complément concernant le premier test que tu as écrit en Pascal (compilé avec fpc).
    La doc de fpc ne dit rien sur la taille d'une variable déclarée de type integer (ça peut être 16 ou 32 bits).

    Par exemple

    var u : integer;
    begin
     u := 1;
     write (u >> 32);
    end.

    le résultat est 1 aussi (et 0 si on décale de 16 ce qui montre que u a été déclaré comme un entier sur 32 bits).

    Et si on écrit

    var u : QWord; // u entier sur 64 bits
    begin
     u := 1;
     write (u >> 32);
    end.

    alors le résultat est bien 0.

    Tout ça pour dire que quand on commence à faire ce genre de manip, le type "integer" est à proscrire (comportement imprévisible). D'ailleurs je dirais que le type "integer" en Pascal est à éviter en général (on ne sait pas trop ce qu'on manipule).
    http://wiki.freepascal.org/Variables_and_Data_Types