Вот такой код:int a=-7;
a<<=1;
a>>=1;
printf("%d\n",a);
Двоичное представление
-7 (если я правильно понял знак хранится в первом бите):
10000111
Если сделать сдвиг влево, то должно получится:
00001110
Затем сдвиг вправо:
00000111
Что в двоичном представлении равно
7. Но у меня как было
-7, так и осталось.