J'ai du code :
signed short a = -32740;
float c;
float b;
b = (signed short)(a << 4);
c = a << 4;
printf("(signed short)(a << 4): %f\n", b);
printf("(a << 4): %f\n", c);
sortie :
(signed short)(a << 4): 448.000000
(a << 4): -523840.000000
Pourquoi 16 registres seniors ne sont-ils pas réinitialisés après le décalage (c = a << 4;
) ?
Le programme a été exécuté sur une machine x86 avec un système linux 32 bits.