#include int main(int argc, char *argv[]) { short int test; test = 0x10000; //0000 0000 0000 0000 printf("test vaut %d\n", test); //Affiche "test vaut 0" (jusque là rien d'anormal) test = 0x8000; //1000 0000 0000 0000 printf("test vaut %d\n", test); //Affiche "test vaut -32768" (encore rien d'anormal puisque le premier bit indique un nombre négatif alors que tu dis que c'est faux) test = 0x8001; //1000 0000 0000 0001 printf("test vaut %d\n", test); //Affiche "test vaut -32767" (le premier bit est donc toujours utilisé pour stocker le signe ...) //je ne vois pas l'utilité de continuer, on voit bien que le premier bit est utilisé pour stocker le signe ... return 0; }