ArrayList java中的十进制到二进制

时间:2015-02-25 04:55:09

标签: java binary converter

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

Digit是一个类,其唯一值是int“bit”和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。

1 个答案:

答案 0 :(得分:1)

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

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