Java 如何在随机数生成器中忽略负值
我使用BigInteger类随机生成一个大的素数,但我一直得到负值。怎么可能忽略所有的负回报?我该如何把它定为固定的10号Java 如何在随机数生成器中忽略负值,java,random,Java,Random,我使用BigInteger类随机生成一个大的素数,但我一直得到负值。怎么可能忽略所有的负回报?我该如何把它定为固定的10号 public class Gen{ public static void main(String[] args) throws IOException { Random rand = new SecureRandom(); BigInteger.probablePrime(100, rand); System.out
public class Gen{
public static void main(String[] args) throws IOException {
Random rand = new SecureRandom();
BigInteger.probablePrime(100, rand);
System.out.println(BigInteger.probablePrime(100, rand).longValue());
}
}
您的错误是由于溢出。Java中的
long
最多只能保存9223372036854775807
的值
如果您的程序生成的随机数大于此值,则当您尝试将其填充到长
中时,可能会得到负值。您可以在以下列表中看到这一点:
请注意,此转换可能会丢失有关BigInteger值的总体大小的信息,并返回带相反符号的结果
您的错误是由于溢出。Java中的
long
最多只能保存9223372036854775807
的值
如果您的程序生成的随机数大于此值,则当您尝试将其填充到长
中时,可能会得到负值。您可以在以下列表中看到这一点:
请注意,此转换可能会丢失有关BigInteger值的总体大小的信息,并返回带相反符号的结果
什么是
rann
??你的意思是rand
??你不能使用Math.abs吗?“返回一个可能是素数的正大整数”-你怎么得到一个负数?你确定你看到的是正确的输出吗?rann是一个打字错误,它的randi漏掉了.longValue()…我将数字存储为long,但当我存储它时,它会变成负数什么是rann
??你的意思是rand
??你不能使用Math.abs吗?“返回一个可能是素数的正大整数”-你怎么得到一个负数?你确定你看到的是正确的输出吗?rann是一个打字错误,它的randi漏掉了.longValue()…我将数字存储为long,但当我存储它时,它会变成negativegosh…除了long之外,还有其他方法来存储更大的数字吗?BigInteger
是最常用的方法,你不能保留它而不是将其转换为long
?天哪…除了long之外,还有其他方法来存储更大的数字吗?biginger
是最常用的一个,你不能保留它而不是将其转换为long
?