2013-03-17 86 views
0

如何表示整数算术的数字大于32或64位处理器允许的数字。我正在尝试编写一个小型的Java计算器,输入必须是一串数字,然后必须转换为二进制或10进制表示。然后它必须被添加,相乘,分割或从另一个数字串中减去,这些数字串也必须被转换。 Python和Ruby等语言显然可以处理诸如“9999999999999999999”+“999999999999999999”之类的内容。但是从Java的角度来看,我不确定这样做的方法。Java极大整数

我已经开始了,通过定义一个带有构造函数的新类来解析字符串是否实际上是一串数字。至于将它们转换成二进制或10进制,以及我可以做些什么,但是我失去了哪些方法会更有益,当我向这个类添加方法时,比如加,减,乘和等划分。

任何概念性的想法,大或小是有帮助的。提前致谢!

+4

好,使用'BigInteger'。 – fge 2013-03-17 20:07:57

+1

[BigInteger的](http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html) – assylias 2013-03-17 20:08:02

回答

1

尝试使用的BigInteger类。它旨在处理大量数据。

3

看看BigIntegerBigDecimal类。两者都是任意精度实现。因此,它们显然比数字文字有更大的(和非常量的)开销。正如名字将意味着,BigInteger只用于整数,而BigDecimal可以存储任何合理的十进制数。

此外,他们有时会用,因为Java不支持操作符重载工作的一种痛苦,所以你不能使用Java的数学运算。改用类的方法。