Java 如何在随机数生成器中忽略负值

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

我使用BigInteger类随机生成一个大的素数,但我一直得到负值。怎么可能忽略所有的负回报?我该如何把它定为固定的10号

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