Bonjour !

L'affectation d'un char de valeur 0xFF dans un unsigned produit un résultat étrange :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
      char cBuf = 0xFF;
      unsigned int uiTmp = cBuf ;
      cout << hex << uiTmp << endl;
      cBuf = 0x11;
      uiTmp = cBuf ;
      cout << hex << uiTmp << endl;
provoque l'affichage de :
FFFFFFFF
11

Je m'attendais plutôt à l'affichage de :
FF
11
Pourquoi le cast ne fonctionne pas comme attendu dans le premier cas ???

Je travaille sous WinXP, processeur de la famille Intel Xeon, compilateur Microsoft Visual Studio 2008.

Merci pour vos suggestions.

Sylvain