题解 | #十进制数转二进制数#
十进制数转二进制数
https://www.nowcoder.com/practice/90d2de77e05e497eacc85e6b50272900
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
个人理解:解法1和解法2通用性都比较强,利用栈的话,就是考虑到他先进后出的性质,刚好满足进制转换时倒着
输出结果的特点;而利用字符串呢?因为它的拼接具有顺序性,可以很好的应对进制转换时对应倒着的特点
//解法1:用栈实现二进制转换
Stack<Integer> res=new Stack();
while(num>=2){
res.push(num%2);
num/=2;
}
res.push(num);//加入最后一个元素
while(!res.isEmpty()){
System.out.print(res.peek());
res.pop();
}
//---------------------------------------
//解法二
String str="";
while(num>=2){
str=num%2+str;
num/=2;
}
str=num+str;
System.out.println(str);
}
}
#进制转换#