5

C とは異なり、Java では、負のオペランドの結果でx/yあり、明確に定義されています。x%y驚くべきことに、これは切り捨て (つまり、負の無限大に向かって) ではなく、ゼロに向かって丸めることによって定義されます。この定義を利用した人はいますか?

ほとんどの場合、私は気にしませんが、 modulo を使用してインデックスを計算する場合など、これを回避する必要がある場合がありましたarray.length

これは暴言ではありません。この定義に用途があるかどうか、私は本当に興味があります。

4

2 に答える 2

6

ゼロに向かって丸めることができれば、除算ルーチンを実装する方が簡単です。多くの場合、負を含む除算は符号が反転され、次に正の等価で除算が実行され、その後、答えが再び反転されます。したがって、効果は自然にゼロに向かって丸められます。

于 2011-04-15T21:42:03.943 に答える
1

これが役立つ例の 1 つを次に示します。

maxPage = (rows.length - 1) / ROWS_PER_PAGE

maxPage = 0( whenrows.length = 0を想定して、特別なケースを指定する必要はありませんROWS_PER_PAGE > 1。)

于 2016-01-12T19:07:09.607 に答える