如何对大于32或64位处理器允许的数字表示整数运算。我试图编写一个小的Java计算器,输入必须是一串数字,然后必须转换成二进制或基数10表示。然后必须从另一个也必须转换的数字串中添加,相乘,除以或减去它。显然,像Python和Ruby这样的语言可以处理类似" 9999999999999999999" +" 999999999999999999"。但我不确定从Java的角度来看这样做的方法。
我首先定义了一个带有构造函数的新类,该构造函数可以解析字符串是否实际上是一串数字。至于将它们转换为二进制或基数为10以及我可以做些什么,但是当我向这个类添加方法(如add,subtract,multiply)时,我会失去哪一个更有益处。和分歧。
任何概念性的想法,无论大小,都是有帮助的。提前谢谢!
答案 0 :(得分:3)
查看BigInteger和BigDecimal课程。两者都是任意精度实现。因此,它们显然比数字文字具有更大(和非常量)的开销。正如名称所暗示的那样,BigInteger
仅用于整数,而BigDecimal
可以存储任何有理十进制数。
此外,它们有时会很麻烦,因为Java不支持运算符重载,因此您无法使用Java的数学运算符。改为使用类的方法。
答案 1 :(得分:1)
尝试使用BigInteger类。它旨在处理大量数据。