#include<cstdio>
#include<string>
#include<iostream>
#include<vector>
using namespace std;
string Di(string str,int x)
{
int n=0;
for(int i=0;i<str.size();i++)
{
int num= n*10+str[i]-'0';
str[i]=num/x+'0';
n=num % x;
}
int pos=0;
while(str[pos]=='0')
{
pos++;
}
return str.substr(pos);
}
string Mu(string str,int x)
{
int carry=0;
for(int i=str.size()-1;i>=0;i--)
{
int current=x*(str[i]-'0')+carry;
str[i]=current%10 +'0';
carry=current/10;
}
if(carry!=0)
{
str="1"+str;
}
return str;
}
string ad(string str,int x)
{
int carry=x;
for(int i=str.size()-1;i>=0;i--)
{
int current=(str[i]-'0')+carry;
str[i]=current%10+'0';
carry=current/10;
}
if(carry!=0)
{
str="1"+str;
}
return str;
}
int main()
{
string str;
while(cin>>str){
vector<int>l;
while(str.size()!=0)
{
int x=str[str.size()-1]-'0';
l.push_back(x%2);
str=Di(str,2);
}
string an="0";
for(int i=0;i<l.size();i++)
{
an=Mu(an,2);
an=ad(an,l[i]);
}
cout<<an<<endl;
}
return 0;
}
大整数 十进制与二进制c++
猜你喜欢
转载自blog.csdn.net/baidu_37143827/article/details/104757885
今日推荐
周排行