Почему здесь возвращается вместо 65535 - 4294967295?
Код:
#include <stdio.h> main(){ unsigned char ch1=0xFF; signed char ch2=0xFF; short int i; i=ch1;/*unsigned char превращается в int*/ printf(«%d\n»,i); /* выведет 255 */ i=ch2; /* signed char превращается в int*/ printf(«%d\n»,i); /* выведет -1 */ printf(«%u\n»,i); /* выведет 65535 */ }
Добаляя в конец строки:
printf(«0x%x\n»,i); printf(«Размер: %d\n»,sizeof(i));
выдает:
0xffffffff Размер: 2