Re[2]: uint.MaxValue << 32 == 0xFFFFFFFF
От: pugv Россия  
Дата: 15.07.21 15:54
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>И где ты здесь UB увидел? Все там defined


The result of a shift operation is undefined if additive-expression is negative or if additive-expression is greater than or equal to the number of bits in the (promoted) shift-expression.


unsigned int int4 = int1 << 32;  // C4293: '<<' : shift count negative or too big, undefined behavior


https://docs.microsoft.com/en-us/cpp/cpp/left-shift-and-right-shift-operators-input-and-output?view=msvc-160

И всё же, зачем?

EDIT. Это про C++ такое написано... Про C# написано, что используются только младшие 5 бит. Так что про UB наврал, да.
Отредактировано 15.07.2021 16:08 pugv . Предыдущая версия . Еще …
Отредактировано 15.07.2021 16:04 pugv . Предыдущая версия .
Отредактировано 15.07.2021 15:56 pugv . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.