История изменений
Исправление 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 представлением.