背景
我正在做一项大学作业,这需要我绘制一个由 4 个十六进制数字表示的模式。到目前为止,我已经设法创建了我需要做的一切,除了一点点小东西:我的代码中有一个错误,它使 A - F(或十进制 10-17)之间的十六进制值无用。
我创建了一个从十六进制获取十进制值并将其转换为二进制值的方法。
以下是我获得的结果列表:
Decimal 1 -> Binary 1 -> CORRECT
Decimal 2 -> Binary 1 -> Should be 10
Decimal 3 -> Binary 11 -> CORRECT
Decimal 4 -> Binary 1 -> Should be 100
Decimal 5 -> Binary 101 -> CORRECT
Decimal 6 -> Binary 11 -> Should be 110
Decimal 7 -> Binary 111 -> CORRECT
Decimal 8 -> Binary 1 -> Should be 1000
Decimal 9 -> Binary 1001 -> CORRECT
Decimal 10 -> Binary 101 -> Should be 1010
Decimal 11 -> Binary 1101 -> Should be 1011
Decimal 12 -> Binary 11 -> Should be 1100
Decimal 13 -> Binary 1011 -> Should be 1101
Decimal 14 -> Binary 111 -> Should be 1110
Decimal 15 -> Binary 1111 -> CORRECT
输出实际上与应有的相反。如何反转输出,或者首先让我的代码输出正确的顺序?
编辑#2
这里的问题,正如原始帖子中提到的那样:
for (int i = 0; i<=3; i++){ //loops trough my pattern array
// Will receive the binary values
while (nDecimal[i]!=0){
pattern[i]= pattern[i]*10 + nDecimal[i]%2;
nDecimal[i]/=2;
System.out.println("Binary ["+i+"] " + pattern[i]);
}
工作不正常,并以相反的顺序输出二进制数字。简而言之,这是进行转换的代码:
int myDecimal;
int result;
while (myDecimal!=0){
result= result*10 + myDecimal%2;
myDecimal=2;
}