Почему здесь возвращается вместо 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


