#include<iostream>
#include<string>
#include<stack>
using namespace std;
string DecToBinary(const string &dec)
{
int i,len,sta;
stack<int> s;
len=dec.length();
int *num=new int[len+1];
for(i=0;i<len;++i)
{
num[i]=dec[i]-'0';
}
while(true)
{
sta=len;
for(i=0;i<len;++i)
{
if(num[i]!=0)
{
sta=i;
break;
}
}
if(sta==len) break;
int remain=0;
for(i=sta;i<len;++i)
{
remain=remain*10+num[i];
num[i]=remain/2;
remain=remain%2;
}
s.push(remain);
}
string ans;
while(!s.empty())
{
ans+=s.top()+'0';
s.pop();
}
if(ans.length()==0)
ans="0";
delete [] num;
return ans;
}
int main()
{
string dec,bin;
int num[150];
while(cin>>dec)
{
if(dec[0]=='0') break;
bin=DecToBinary(dec);
cout<<bin<<endl;
}
return 0;
}
十进制转化为2进制
最新推荐文章于 2020-04-18 22:46:34 发布