如何处理java中比BigInteger大的大数?

Din*_*lam 2 java largenumber biginteger

输入:

BigInteger l = BigInteger.valueOf(111111111111111110);
Run Code Online (Sandbox Code Playgroud)

编译器错误消息

整数过大

我的目标是不断减少给定的大数,直到某个值(比如K).

我怎样才能做到这一点?

Ous*_* D. 7

整数过大

它给出错误的原因是因为你传入参数的类型valueOf(...)int(这是默认类型,除非你另有说明),它有一个限制,你已经超过了这个限制因此错误.

BigInteger l = BigInteger.valueOf(111111111111111110); // argument is int, so it will give a compiler error
Run Code Online (Sandbox Code Playgroud)

long改为使用参数.

BigInteger value = BigInteger.valueOf(111111111111111110L);
Run Code Online (Sandbox Code Playgroud)

或使用string参数.

BigInteger value = new BigInteger("111111111111111110");
Run Code Online (Sandbox Code Playgroud)

  • 请使用`L`代表`long`后缀.`L`比`l`更容易阅读,可以用某些字体解释为`1`. (5认同)