【问题标题】:Decimal to Binary within an ArrayList javaArrayList java中的十进制到二进制
【发布时间】:2015-04-26 23:56:29
【问题描述】:

输入是十进制数,输出应该是ArrayList中二进制形式的相同数字,但由于某种原因它只输出1s

Digit 是一个类,其唯一值是一个 int“位”和一个 2 位加法器。

private ArrayList<Digit> numbers;
private Digit number;

public Converter(int val){
    numbers = new ArrayList<Digit>();
    number = new Digit(val);
    if (val == 1 || val == 0){
        numbers.add(number);
    } else{
        while (val >= 1){
            number.setValue(val % 2);
            numbers.add(number);
            val = val/2;
        }
    }
}

public String toString(){
    return "" + numbers;
}

这是输出正确数量的元素,但都是1。

例如。 5 = 1,1,1 而不是 1,0,1。

【问题讨论】:

  • 您是否尝试过通过调试器运行它?请注意,对于 val = 2,这将返回 [0, 1]... 所以一个零,但它在错误的位置。
  • 请包含数字类

标签: java binary converter


【解决方案1】:

您正在使用同一个 Digit 对象来占据 ArrayList 中的所有位置,因此它只显示写入该对象的最后一个值。

将对象的克隆存储在 ArrayList 中以获得所需的结果。

【讨论】:

  • 谢谢!我没有意识到我不能只改变对象的值。
猜你喜欢
  • 2014-02-20
  • 2012-11-08
  • 2020-06-25
  • 2015-06-15
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 2012-10-26
  • 2015-09-22
相关资源
最近更新 更多