problème avec unsigned int
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:
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:
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 !