Перед C ++ 20, когда левый операнд отрицательный, почему левая сдвига является неопределенным поведением, но в правой сдC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Перед C ++ 20, когда левый операнд отрицательный, почему левая сдвига является неопределенным поведением, но в правой сд

Сообщение Anonymous »

Я понимаю, что стандарты до C ++ 20 не определяют представление подписанных целых чисел. Следовательно, когда оставляют отрицательное число, результат не определен, поскольку это зависит от базового представления. Однако, почему, когда дело доходит до правильного сдвига, поведение становится определяемой реализацией, а не неопределенным? Разве результат все еще не зависит от базового представления?

Подробнее здесь: https://stackoverflow.com/questions/795 ... defined-be
Ответить

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

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

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

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

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