我有一个十进制到二进制转换器,但不能连接bitNum
和holder
,因为它们只是简单地互相添加。
我知道我可以解析它,但每次循环时我都要解析它吗?
public class DecToBin {
public static void main(String[] args){
int no1;
int binNum = 0;
Scanner s = new Scanner(System.in);
no1 = s.nextInt();
while(no1 > 0){
int holder = no1 % 2;
System.out.println(holder);
binNum = holder + binNum;
no1 /= 2;
}
System.out.println("Your number is binary is: " + binNum);
}
}
答案 0 :(得分:2)
我知道原因。由于用户想要连接字符串,您可以使用Java提供的concat()方法。在找到二进制文件时,我们应该在打印时反转字符串,你必须知道我们为什么要反转字符串。他们使用以下代码:
import java.util.*;
public class DecToBin {
public static void main(String[] args){
int no1;
Scanner s = new Scanner(System.in);
no1 = s.nextInt();
String binNum = "";
while(no1 > 0){
int holder = no1 % 2;
System.out.println(holder);
binNum.concat(Integer.toString(holder));
no1 /= 2;
}
String actual = new StringBuilder(binNum).reverse().toString();
System.out.println("Your number is binary is: " + actual);
}
}
答案 1 :(得分:1)
将bitNum设为字符串并执行:
binNum = holder + binNum;
你不能连接整数(你可以添加),但你可以连接字符串。当您使用String连接时,int将自动转换为String。
答案 2 :(得分:1)
更好的实施:
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
StringBuilder builder = new StringBuilder();
while (num > 0) {
builder.append(num % 2);
num /= 2;
}
String actual = builder.reverse().toString();
System.out.println("Your number is binary is: " + actual);
改进: