Понимание правильного оператора смены с переключением битовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Понимание правильного оператора смены с переключением битов

Сообщение Anonymous »

Я испытываю трудности с пониманием правильного оператора смены. Я понимаю левую смену.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»