Tout dépend de l'opérateur en cause.Oui. Tout calcul s'exécute dans le type le plus large des opérandes impliqués dans le calcul.Envoyé par Flynet
En faisant :
le 0x40000000 est transformé en long long de même que le 2 de manière implicite. Du coup le résultat est bien stocké.
Code : Sélectionner tout - Visualiser dans une fenêtre à part x = (long long) 0x40000000 << 2;
Dans le cas de >> ou <<, chaque opérande subit la promotion entière mais il n'y a pas lieu de déterminer un type commun pour réaliser l'opération. Le résultat de l'opération est du type de l'opérande de gauche (après promotion). Le 2 est (et reste après promotion) un int.
Ceci étant, ça ne change rien sur le résultat final.
Partager