我一直在研究数制计算器
(refer to my binary question)
Enter Number: 165
Enter Base: 16
The answer: A105
这是我的代码:
int given = 0, base = 0, remainder = 0;
String output = "";
if (base == 2||base == 8){
while(given != 0){
remainder = given % base;
given /= base;
output = remainder + output;
}
System.out.println(output);
}
else if (base == 16){
while (given > 0){
remainder = given % base;
if (remainder <= 10){
System.out.print("");
}
switch(remainder){
case 10:System.out.print("A");break;
case 11:System.out.print("B");break;
case 12:System.out.print("C");break;
case 13:System.out.print("D");break;
case 14:System.out.print("E");break;
case 15:System.out.print("F");break;
}
given /= base;
output = remainder + output;
}
System.out.println(output);
}
我应该选择继续切换结构,还是我的代码有问题?
编辑:为了清楚起见,
output
变量将反转给定的特定值。如果我把一个37作为十进制数转换成二进制数,它就会输出
101001
.