ArrayList java 中的十进制到二进制
Decimal to Binary within an ArrayList java
输入是一个十进制数,输出应该是 ArrayList 中二进制形式的相同数字,但由于某种原因它只输出 1s
Digit是一个class,它的唯一值是一个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。
您正在使用同一个 Digit 对象来占据 ArrayList 中的所有位置,因此它只显示写入该对象的最后一个值。
在 ArrayList 中存储对象的克隆以获得所需的结果。
输入是一个十进制数,输出应该是 ArrayList 中二进制形式的相同数字,但由于某种原因它只输出 1s
Digit是一个class,它的唯一值是一个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。
您正在使用同一个 Digit 对象来占据 ArrayList 中的所有位置,因此它只显示写入该对象的最后一个值。
在 ArrayList 中存储对象的克隆以获得所需的结果。