Я инициализирую unsigned short int с = 0xff (все биты установлены).
Затем я присваиваю b >> 7, что должно дать (0000 0001), и это делает. Однако странным является то, что когда я присваиваю c << 7, это не эквивалентно (1000 0000). Я проверил это путем вывода 0x80 (то есть 1000 0000) и c, но они не совпадают. </p>
Вот код:
unsigned short int a = 0xff;
unsigned short int b = a>>7;
unsigned short int c = a<<7; // c should == 0x80
Я не уверен, в чем проблема. Любая помощь приветствуется. Спасибо.
P.S. Под «выводом» я подразумеваю вывод 0x80 и c в десятичной и шестнадцатеричной форме.