题目描述
如输入:13
输出:1101
解题一-除基倒取余法
1.思路
这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。
那么,在实际实现中,可以用int的一个数来存储最后的二进制,每次求余后把余数存储在int型数的低位,依次递增。
2.代码
public void binaryToDecimal(int n) {
int t=0; //用来记录位数
int r=0; ///用来存储余数
int bin=0; //用来记录最后的二进制数
while(n!=0) {
r=n%2;
n=n/2;
bin=(int) (r*Math.pow(10,t));
t++;
}
System.out.println(bin);
}
解题二-调用API函数
这是处理问题更符合面向对象的一种方式
2.代码
public class Solution{
public static void main(String[] args) {
String result=Integer.toBinaryString(13);
System.out.println(result);
}
}
3.运行结果

网友评论