【发布时间】: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]... 所以一个零,但它在错误的位置。
-
请包含数字类