это прекрасно?
Да. i
станет 4093640704
, в шестнадцатеричном 0xf4000000
.
Это переполнение?
Нет. Это сдвиг вправо (операция, подобная делению), поэтому i
станет нулем.
Обратите внимание, что правила смены очень вероятно изменятся. В настоящее время в нескольких случаях определены неопределенные поведение или реализация. Поскольку следующий стандарт потребует двух дополнительных арифметики, правила о смещении будут смягчены: единственное неопределенное поведение будет, если величина смещения будет больше или равна ширине типов. Вот текущие проекты правил: ссылка .