java如何用负数做模数计算?

新手上路,请多包涵

我在做模数错误吗?因为在 Java 中 -13 % 64 评估为 -13 但我想得到 51

原文由 Jakir00 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 616
2 个回答

负数模数的两种定义都在使用——一些语言使用一种定义,另一些语言使用另一种。

如果你想得到负输入的负数,那么你可以使用这个:

 int r = x % n;
if (r > 0 && x < 0)
{
    r -= n;
}

同样,如果您使用的语言在输入负数时返回负数,并且您更喜欢正数:

 int r = x % n;
if (r < 0)
{
    r += n;
}

原文由 Mark Byers 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题