switch (oper){
case ('A'):
case ('a'):
do{
System.out.print(num%2);
num=(num/2);
}while(num>=1);
break;
}
所以我得到了这段代码从十进制转换为二进制,它以二进制输出结果,但例如,数字 50 输出为 010011 而不是 110010,有人知道扭转打印的方法吗?
没有"魔术开关",您可以打开它向后打印。但是,您可以做的是将要打印的所有字符串推送到堆栈上,然后在弹出它们时打印它们。
Stack<String> stack = new Stack<>();
do{
stack.push(Integer.toString(num % 2));
num=(num/2);
}while(num>=1);
while (!stack.empty()) {
System.out.println(stack.pop());
}
这是有效的,因为堆栈是后进先出的数据结构。最后被推的东西首先被弹出。
只需使用StringBuilder
https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StringBuilder.html#reverse((
StringBuilder str = new StringBuilder();
str.append();
System.out.print(str.reverse().toString());
根据您提供的代码:
StringBuilder str = new StringBuilder();
switch (oper){
case ('A'):
case ('a'):
do{
str.append(num%2);
num=(num/2);
}while(num>=1);
break;
}
System.out.print(str.reverse().toString());