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 :
j'ai bien une valeur non signée de 65535.
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);
Or, en reprenant le même code, mais en changeant short par int…
Il me sort -1 !
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);
J'ai beau chercher la cause, je ne la comprends pas.
Pouvez-vous éclairer ma lanterne ?
Merci !
Partager