站点图标 陌路寒暄

进制转换(十进制转二进制)

进制转换(十进制转二进制)

时间: 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;
}
		
	

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版