您的位置:首页 > 其它

将十进制数转换为二进制数----不用数组,也不用函数,只用循环

2013-11-07 14:38 295 查看
输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组,也不用函数调用)

/*
输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组)

分析:十进制转换成二进制的方式:
用辗转相除依次取余,直到商为0,获取逆序的余数序列就是对应的二进制数
用循环不用数组,因此,将按先得到的余数序列组成一个整数值,
再逆序输出该整数值(从低位到高位输出),即获得二进制代码
*/

#include <iostream>
using namespace std;
int main()
{
int n; //待转换的十进制正整数
int m; //存每次转换得到的余数
int sum=0;	//进制转换逆序值
int count=0; //记录二进制位数
int i;
cout<<"请输入待转换的十进制正整数:";
cin>>n;
while(n<0)
{
cout<<"请重新输入待转换的十进制正整数:";
cin>>n;
}
cout<<endl;
cout<<"十进制"<<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;
}
cout<<endl;
return 0;
}




 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: