【发布时间】:2011-04-20 23:02:07
【问题描述】:
如何在 Java 中找到两个 long 值的模 (%)?我的代码显示“整数太大”,后跟我要修改的数字。我尝试将其投射到很长的时间,但没有奏效。我是否必须将其转换为 BigInteger 并使用余数方法?谢谢。
【问题讨论】:
标签: java long-integer modulo modulus
如何在 Java 中找到两个 long 值的模 (%)?我的代码显示“整数太大”,后跟我要修改的数字。我尝试将其投射到很长的时间,但没有奏效。我是否必须将其转换为 BigInteger 并使用余数方法?谢谢。
【问题讨论】:
标签: java long-integer modulo modulus
% 运算符确实可以长时间工作。听起来您可能忘记在数字文字的末尾加上L,如123456789L。我们可以看看你的代码吗?
【讨论】:
code total = total.add(BigInteger.valueOf(b(i)%1234567891011) code
你只能有一个不超过 2 147 483 647 的整数。如果你想变得更大,比如 30 亿,你必须指定它是一个长整数
class Descartes {
public static void main(String[] args) {
long orig = Long.MAX_VALUE;
long mod = orig % 3000000000; // ERROR 3000000000 too big
long mod = orig % 3000000000L; // no error, specified as a long with the L
}
}
请记住,您可以使用大写或小写 L,但建议使用大写,因为小写看起来与数字 1 非常相似。
【讨论】:
您也可以尝试使用 BigInteger 类,该类有一个与 % 类似的剩余 () 方法。
【讨论】: