当前位置: 首页 > 面试题库 >

Java中的Mod产生负数

薛飞星
2023-03-14
问题内容

当我计算时,int i = -1 % 2 我会-1使用Java。在Python中,我得到1的结果-1 % 2。我该怎么做才能在Java中使用模函数获得相同的行为?


问题答案:

这里的问题是,在Python中,%运算符返回模数,而在Java中,它返回余数。这些函数为正参数提供相同的值,但是模数对于负输入始终返回正结果,而其余部分可能给出负结果。这个问题还有更多的信息。

你可以通过执行以下操作找到正值:

int i = (((-1 % 2) + 2) % 2)

或这个:

int i = -1 % 2;
if (i<0) i += 2;

(显然,-1或2可以是你想要的分子或分母为任意值)



 类似资料:
  • 问题内容: 我试图通过乘以毫秒来计算30天,但是结果持续出现,结果是days_30的值是负数,我不确定为什么。 任何建议,不胜感激! 代码片段: days_30值导致:-1702967296 聚苯乙烯 结果较小(但仍为负数)。-1.702967296E9 问题答案: 您正在相乘,并且发生溢出,因为最大整数为。只有在乘法之后,它才会转换为。将第一个数字转换为。 或使用文字: 从一开始,这将迫使数学运

  • 我观察到库函数,当它在循环中被调用一次时,它几乎总是产生正数。

  • 然而,我收到的是负数和高于52的偶数。我如何修复它,使它产生的数字在18到52之间?

  • 问题内容: 我正在进行一些吞吐量测试。我的申请必须 从JMS读取 做一些处理 写入JMS 我的目标是模拟#2,“一些处理”。也就是说,在转发事件之前引入延迟并在给定时间(例如500ms)内占用CPU。 天真的方法是。这将导致正确的执行延迟,但不会占用CPU。 计算斐波纳契数是一种选择。 有没有人使用任何有趣的技术只是为了让CPU在给定时间内忙碌? 理想的特征是: 执行各种指令,而不是(例如)仅在循

  • 问题内容: 我在有TCP服务器的软件包中使用goroutines。大多数时候,响应非常沉重,但是当例程结束时,不会从内存中清除它。 因此,在这种情况下,响应很大,并且可以使用10%的内存作为goroutine,因为我从数据库中获得了170.000个用户并将结果解析为JSON。但是当handleRequest仍然在内存中时,如果我没有使用。我怀疑这是否是一种好方法,因为它位于调试包中,所以我的问题

  • 问题内容: 我正在尝试在short原始数据类型的范围内(-32768,32767)生成随机整数。java Random对象仅生成正数。我将如何在该间隔内随机创建数字?谢谢。 问题答案: 您随机选择,然后减去