【问题标题】:How to convert a java linked list of a binary representation of a number to a String of the decimal representation of a number?如何将数字二进制表示的java链表转换为数字十进制表示的字符串?
【发布时间】:2019-05-14 16:06:26
【问题描述】:

我在 java 中构建了一种新的数字类型,它将二进制数表示为位的链接列表。我的类的 toString 打印这个数字的二进制形式,但我想创建一个打印这个数字的十进制表示的函数,为了解决数字类型的限制,我希望它是字符串形式. 问题是我不能将完整的数字放入 int 或 long 中,因为我的数字类型可以容纳任何大小的整数。 如果有人需要查看课程或课程的一部分以提供帮助,我可以将其发送给他们。

【问题讨论】:

  • 在此处发布代码。
  • 据我所知,您可以使用 StringBuilder 连接您的各个字符串,然后表示该二进制文件的十进制格式 - 因为您已经提到您希望它以字符串形式出现
  • 有 BigInteger 和 BigDecimal 类用于任意大小的数字。这些还包括解析字符串的构造函数。当然,问题是:你当初为什么要重新发明那个轮子?
  • 如果您想重新发明轮子:从 Internet 上获取任何用于从二进制转换为十进制的代码。使用您自己的类自己实现它。
  • @GhostCat 我的cs课的作业

标签: java binary iterator type-conversion decimal


【解决方案1】:

查看BigInteger。由于您的数据结构允许存储任意大小的二进制数,BigInteger 允许存储任意大小的整数。

由于您可以将位列表转换为String,您可能希望使用此构造函数public BigInteger​(String val, int radix)。例如,假设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

【讨论】:

    猜你喜欢
    • 2021-02-12
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多