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
varu:integer;beginu:=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
varu:QWord;// u entier sur 64 bitsbeginu:=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
# petit complément
Posté par snowball (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
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
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