Bonjour !
En testant un bout de code, concernant les types de variables signées ou non signées, j'ai remarqué un truc que je ne m'explique pas.

si je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
unsigned short s;
s = -1 ;//pour forcer le MSB à 1
printf("valeur = %d", s);
j'ai bien une valeur non signée de 65535.

Or, en reprenant le même code, mais en changeant short par int…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
unsigned int i;
i = -1 ;//pour forcer le MSB à 1
printf("valeur = %d", i);
Il me sort -1 !

J'ai beau chercher la cause, je ne la comprends pas.
Pouvez-vous éclairer ma lanterne ?

Merci !