方法1:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 20;
// 进行转换
String b = tenChangeTwo(a);
// 输出结果
System.out.println(b);
}
// 将10进制整数正整数变成2进制
private static String tenChangeTwo(int a) {
StringBuilder sb = new StringBuilder();
change(sb, a);
return sb.toString();
}
// 将10进制整数正整数变成2进制
private static void change(StringBuilder sb, int a) {
if (a == 0) {
return;
}
sb.insert(0, a % 2);
change(sb, a / 2);
}
}
结果:
10100
解释:
使用的递归和除基倒取余的思想
方法2:
public class Test {
public static void main(String[] args) {
// 测试数据
int a = 20;
// 进行转换
String b = tenChangeTwo(a);
// 输出结果
System.out.println(b);
}
public static String tenChangeTwo(int a) {
StringBuilder str = new StringBuilder();
while (a != 0) {
str.insert(0, a % 2);
a /= 2;
}
return str.toString();
}
}
结果:
10100
解释:
使用的while循环和除基倒取余的思想