从整数转换为BigInteger


129

我想知道是否有任何方法可以将Integer类型的变量转换为BigInteger。我尝试过类型转换Integer变量,但是却收到一条错误消息,指出不可转换的类型。


12
您已经问了一些有关BigInteger的问题,这些问题可以通过阅读Javadocs轻松解决。按照我的答案中的链接,并检查出BigInteger具有的所有方法和构造函数。
jjnguy 2010年

Answers:


239

您想要的方法是BigInteger#valueOf(long val)

例如,

BigInteger bi = BigInteger.valueOf(myInteger.intValue());

首先创建String是不必要的,也是不希望的。


2
@Mich,不。如果是整数,Java会自动为您扩展它。(OP说他有一个整数)
jjnguy 2010年

那也将工作。在Integer上,intValue()不会溢出,因此对valueOf的调用只会将int扩展为long。在此示例中,使用longValue()和intValue()之间没有明显的区别,但是如果他以Long开头,则他想使用longValue()。
jbindel

2
Amar,这将类似于其他基于String的方法。这里要避免的关键是字符串的任何生成或解析。
jbindel

1
并不是说使用字符串会给您错误的答案,但这对计算机来说是额外的工作。例如,您可以步行到隔壁去隔壁的房子,也可以朝相反的方向走,并且几乎遍及全球。您仍然会到达那里,并且如果您有一架快速的火箭飞机,您可能不会注意到它花费的时间,但是这是浪费的,并且确实需要更长的时间。
jbindel

1
当myInteger为null时,它将是NPE。
Wizzard

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.