>Почему на ноль делить нельзя?
Потому-что в принятой в большинстве систем модели математики по умолчанию данное действие не допускается. Технически обоснованно наборов прочих моментов как мы хотим чтоб калькулятор считал и сколько это будет стоить в железе.
Образно по этому-же операции на математическом процессоре имеют дельту погрешности.
А так можно, там где можно даёт лимит к бесконечности (максимальное значение переменной + флаг переполнения регистра как самый востребованный вариант реализации)
>Можно, но толку мало
Бывает что нужно. Например вполне реальная и частая ситуация в компьютерной графике.
>Зато всякие Σ для обозначения суммы и прочее говно.
По умолчанию в том-же СИ++ не можно (ибо ASCII совместимость), но руками для компилятора умеющего варить исходники в unicode определить можно, будет работать.
>>219477
Удивляет вообще Floating point exception
Явно говно компилятор. Он не должен два INT-а делить на математическом сопроцессоре по базовым определениям трансляции СИ.
Ну а далее, если результат деления не влазит в переменную - вот тебе исключение.
Применительно к INT_MIN % -1 переполнение регистра - вполне ожидаемый результат.
>Математически n % -1 = 0
Электрически это
$ = n / 1
!$
n = n - $
Если у тебя число линий АЛУ тут уже не позволяет посчитать $, то взводится OE и дальше процесс не идёт (т.к. у нас нет $)
Ты можешь сказать что INT_MIN ведь же влазит в AX! , да, но это 7F...FFFF и результат деления на 1 даёт то-же, то есть предельное значение регистра в знаковом состоянии, что побуждает схемотехнику АЛУ взводить OE как признак, что оно там могло быть больше, но обрезалось.