Это хорошо известная несогласованность в целых делениях, как определено в C и многих других языках программирования: деление на целое число N дает остаток в диапазоне 0..N, а не 0 .. | N |. IMO это отрицательно влияет на некоторые приложения, например, если вы показываете изображение, определенное на целочисленной сетке, лучше поместить (0,0) за пределы области изображения: в противном случае вы получите видимую строку в x == 0 и другой в y == 0 на некоторых операциях с изображениями.Почему целочисленное деление усекает 0, а не отрицательную бесконечность?
Не могли бы вы назвать пример практического использования целочисленного деления, где усечение до 0 будет служить намерению программирования лучше, чем усечение до отрицательной бесконечности?
Ваш первый вопрос требует ответов, которые будут основываться главным образом на мнении. Второй вопрос - IMHO слишком широк. Немного больше усилий, и у тебя будет приятная маленькая трифекта. –
@CaptainObvlious, aye-aye, Captain. – Michael
Это не было обязательным поведением в древнем C или C++ до недавнего времени - до этого не было указано как направление округления, так и знак остатка, хотя они должны были соответствовать, поэтому вы можете рассмотреть примечания, представляющие, что изменение. –