输入是十进制数,输出应该是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。
答案 0 :(得分:1)
你使用相同的Digit对象占据ArrayList中的所有位置,因此它只显示写入对象的最后一个值。
将对象的克隆存储在ArrayList中以获得所需的结果。