Вот программа
#include <stdio.h>
main()
{ unsigned char i=0x80;
printf("i=%d",i<<1);
}
На выходе она дает 256. Я не понимаю, что
unsigned char i=0x80; <-- i is not int it is char so what will it store?
мне известно о битовых и шестнадцатеричных вещах. Как сохраняется значение i и как оно изменяется на 256?
ОБНОВЛЕНИЕ
Почему не произошло переполнения, когда произошла операция сдвига битов?