Java 中负数的模计算
在 Java 中,模运算符 (%) 返回两个数相除后的余数。然而,在处理负数时,结果可能不符合预期。
问题:
开发人员在使用负数进行模计算时遇到意外结果,特别是 -13 % 64。结果不是期望的 51,而是 -13。
解释:
负数模数的定义因编程而异语言。在 Java 中,模运算符返回的余数与被除数(分子)具有相同的符号。因此,-13 % 64 的计算结果为 -13。
解决方案:
要获得所需的结果 51,可以应用以下校正:
<code class="java">int r = x % n; if (r > 0 && x < 0) { r -= n; }</code>
此代码确保当除数为负时余数为正。
或者,如果语言对负输入返回负余数,并且开发人员更喜欢正结果,则可以进行以下调整made:
<code class="java">int r = x % n; if (r < 0) { r += n; }</code>
此代码将负余数转换为正值。
以上是以下是一些标题选项,可以使用问题格式: * **为什么Java中是-13 % 64而不是51?**(简单直接) * **Java 模运算符和负数:如何获得预期结果的详细内容。更多信息请关注PHP中文网其他相关文章!