Я испытываю трудности с пониманием правильного оператора смены. Я понимаю левую смену.int n = 11; which is 1011
< /code>
Теперь, если мы оставим сдвиг n
Результат < /p>
int a = n
Это имеет смысл < /p>
Теперь правильная сдвига - это то, где у меня возникает трудности < /p>
int a = n >> 1
< /code>
Я думаю, что ответ 01011 < /code> (добавить 0 к фронту), который снова будет 1011, но вместо этого 101. Мой вопрос заключается в том, как мы потеряли последнюю цифру. < /p>
обновление: < /strong>
my with wy in in in in in -8. => Что 00001011
Так что, когда мы правой сдвиг на 1, он превышает 8 -битный int на 1, так что последний бит сброшен, и он становится
0000101? Это понимание правильно?
Подробнее здесь: https://stackoverflow.com/questions/552 ... t-shifting