Q2:30位的十进制数转二进制数

步骤

  • 以字符串形式读入这个大小早已超过了long long类型的数字
  • 编写函数获得二进制的字符
  • 执行函数,直接输出结果

可执行代码

#include<string>
#include<iostream>
#include<algorithm>
using namespace std;

string rese(string s)
{
    
    
	int length=s.size();
	string b="";
	
	for(int i=0;i<length; )
	{
    
    
		int k=0;
		for(int j=i;j<length;j++)
		{
    
    
			int t=(k*10 + s[j] - '0')%2;//int t=(k*10+int(s[j]-'0'))%2;
			s[j]=(k*10 + s[j] - '0')/2 +'0';//s[j]=int(s[j]-'0')*10/2;
			k=t;
		}
		b=b+char(k+'0');
		while(s[i] == '0')
			i++;
	}
	reverse(b.begin(),b.end());
	//b=reverse(b.begin(),b.end());//忘记了 
	return b;
}

int main()
{
    
    
	string s;
	cin>>s;
	cout<<rese(s);
}

执行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45880844/article/details/129857821