花式实现十进制转二进制
需求:
就是输入一个十进制数,将它转换成对应的二进制数
examples:
input: 12
output:1100
解题思路:对应下面的大小表
1 2 4 8 16 32 64 128 256 512 1024
0 0 1 1
所以为对应二进制数为1100
上代码:
/**
*
* @author xiongda
* @date 2018年7月10日
* @description 将十进制数转换成二进制
*/
public class DecimaltoBinary {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
System.out.println("请输入你想转换的十进制数:");
int d_num =in.nextInt();
int size=0; //记录二进制数的位数
//先确定该值的大小
for(int i=0;i<100;i++) {
if(d_num<(int)Math.pow(2, i)) {
size=i;break;
}
}
//产生二进制数
String binary="";
int temp; //临时存放结果
for(int i=(size-1);i>=0;i--) {
temp=(int)Math.pow(2, i);
if(d_num>=temp) {
d_num-=temp;
binary=binary+"1";
}else {
binary=binary+"0";
}
}
System.out.println("对应的二进制数为:"+binary);
}
}