Странный результат с операциями бишифта

Я пытаюсь лучше понять операции бишифта, поэтому я написал себе небольшую программу.

unsigned char a = 240;
a= (a << 3) >> 7;
printf("a: %u\n",a);

Теперь я представляю, что результатом будет что-то вроде :

11110000 // 240
10000000 // << 3
00000001 // >> 7

Итак, 1, но я получаю 15. Я запутался... Любая помощь будет принята с благодарностью!

5
задан MaSmi 4 December 2011 в 18:54
поделиться