2013-03-17 65 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的數學運算。改用類的方法。