LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

А тут на самом деле всё логично.

Если ты тайпкастишь -1 в unsigned - будет удобно если получится что-то, что совпадает с результатом вычитания единицы из unsigned нуля через врап. А это как раз совпадает с 2's complement представлением. В итоге на большинстве архитектур этот тайпкаст вообще no-op, а на редких с другими отрицательными числами - доп. операции, зато сохраняют совместимость высокоуровневой арифметики.

Ну и конструкция ((unsigned something)-1) для получения максимального (все единичные биты) числа заданного типа удобнее чем ((unsigned something)~(unsigned something)0) которую бы пришлось иначе использовать.

Ну и ты ж не требуешь чтобы тайпкаст float -> int32 делался на основе их битовых представлений.

Исправление firkax, :

А тут на самом деле всё логично.

Если ты тайпкастишь -1 в unsigned - будет удобно если получится что-то, что совпадает с результатом вычитания единицы из unsigned нуля через врап. А это как раз совпадает с 2's complement представлением. В итоге на большинстве архитектур этот тайпкаст вообще no-op, а на редких с другими отрицательными числами - доп. операции, зато сохраняют совместимость высокоуровневой арифметики.

Ну и конструкция ((unsigned something)-1) для получения максимального (все единичные биты) числа заданного типа удобнее чем ((unsigned something)~(unsigned something)0) которую бы пришлось иначе использовать.

Исправление firkax, :

А тут на самом деле всё логично.

Если ты тайпкастишь -1 в unsigned - будет удобно если получится что-то, что совпадает с результатом вычитания единицы из unsigned нуля через врап. А это как раз совпадает с 2's complement представлением. В итоге на большинстве архитектур этот тайпкаст вообще no-op, а на редких с другими отрицательными числами - доп. операции, зато сохраняют совместимость высокоуровневой арифметики.

Исходная версия firkax, :

А тут на самом деле всё логично.

Если ты тайпкастишь -1 в unsigned - будет удобно если получится что-то, что совпадает с результатом вычитания единицы из unsigned нуля через врап. А это как раз совпадает с 2's complement представлением.