我在java中构建了一种新的数字类型,它将二进制数的表示形式作为位的链接列表。我的类的toString打印这个数字的二进制形式,但我想创建一个函数来打印这种数字的十进制表示,为了绕过数字类型的限制,我希望它是字符串形式。问题是,我永远不能把整数放在int或long中,因为我的数字类型可以容纳任何大小的整数。如果有人需要看课程或其中的一部分来提供帮助,我可以把它发给他们。
查看BigInteger。由于您的数据结构允许存储任意大小的二进制数,BigInteger允许存储任意尺寸的整数。
由于您能够将位列表转换为String
,因此您可能需要使用此构造函数public BigInteger(字符串val,整数基数(。例如,假设YourClass
的对象yourObject
包含位1 0 1 1 0的列表,该列表使用您实现的toString
方法打印为"10110"。现在:
YourClass yourObject; // 10110
BigInteger bi = new BigInteger(yourObject.toString(), 2);
System.out.println(bi); // Prints out 22