进制转换(十进制转二进制)
时间: 1ms 内存:128M
描述:
输入一个非负整数(十进制),输出此整数对应的二进制数
输入:
非负整数(十进制)
输出:
对应的二进制数
示例输入:
6
示例输出:
110
提示:
参考答案(内存最优[920]):
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c=0,i=1;
scanf("%d",&a);
while(a)
{
b=a%2;
c+=b*i;
a/=2;
i*=10;
}
printf("%d",c);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
int main()
{
int n; //待转换的十进制正整数
int m; //存每次转换得到的余数
int sum=0; //进制转换逆序值
int count=0; //记录二进制位数
int i;
cin>>n;
if(n==0)
{cout<<n<<endl;
return 0;
}
while(n!=0) //辗转相除取余到商为0
{
m=n%2; //获取对应此次的余数
count++; //二进制位数增1
sum=sum*10+m; //余数按先得到顺序组成一个整数,最后反序就是2进制数
n=n/2;
}
for(i=count;i>0;i--) //循环从低位到高位逆序输出sum各个位上的数
{ cout<<sum%10;
sum=sum/10;
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。