【发布时间】:2018-09-21 16:12:14
【问题描述】:
似乎为了在 Java 中找到除法的商和余数,必须这样做:
int a = ...
int b = ...
int quotient = a / b;
int remainder = a % b;
有没有办法这样写,以便在一个步骤中找到商和余数(一次除法运算)?或者 Java 是否已经自动优化了这段代码?
【问题讨论】:
-
你会如何在纸上进行一次操作?
-
不能在一行中给两个不同的变量赋值。
-
@Shark 在纸面上,长除法同时为您提供商和余数。有人告诉我,除法算法往往只提供其中一种。
-
@Shark 你可以在任何一步停止长除法。你知道
5进入11两次。2*5=10。11-10=1=remainder. -
在 Java 中没有办法做到这一点。当它得到 JIT 时,它可能会将其简化为单个
idiv指令。您也可以使用 JNI,但最终可能会明显变慢。
标签: java integer-division