为什么整数div和mod向零舍入?

maa*_*nus 5 java integer-division

不同于C,在Java是的结果x/yx%y良好定义的甚至为负的操作数.令人惊讶的是,它的定义是向零舍入,而不是向下舍入(即向负无穷大).有没有人利用这个定义?

在大多数情况下,我只是不在乎,但有时我不得不解决这个问题,例如,在使用modulo计算索引时array.length.

这不是咆哮,如果有这个定义的用途,我真的很感兴趣.

Oli*_*rth 6

如果可以向零舍入,则更容易实现除法例程.通常,涉及负数的除法是符号翻转,然后除法在正等价物上进行,然后答案再次翻转.因此,效果自然会趋于零.