站外题求助&玄关
  • 板块学术版
  • 楼主xiaozhengguo123
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/28 19:51
  • 上次更新2024/12/28 22:33:13
查看原帖
站外题求助&玄关
1421829
xiaozhengguo123楼主2024/12/28 19:51

八进制转二进制

#include <bits/stdc++.h>
#define int long long
using namespace std;

signed main ()
{
	string s;
	cin>>s;
	long long a[s.size()] = {0};
	int n = s.size();
	for (int i = 0;i<n;i++)
	{
		a[i] = s[n-i-1]-'0';
	}
	long long b[n];
	for (int i = n-1;i>=0;i--)
	{
		b[i] = a[i];
	}
	unsigned long long sum = 1;
	unsigned long long num = 0;
	for (int i = 0;i<n;i++)
	{
		num+=b[i]*sum;
		sum*=8;
	}
	//cout<<num<<endl;
    string q;
    int er = 0;
	while (num!=0)
	{
        q[er] = (char)num%2+48;
        num-=num%2;
        num/=2;
        er++;
        if (num==0)
            break;
	}
    int h = 0;
    for (int i = er-1;i>=0;i--)
    {
        if (q[i]!=0)
        {
        	h=i;
        	break;
        }

    }
    for (int i = h;i>=0;i--)
    {
        if (q[i]=='/')
            cout<<1;
        else
        	cout<<q[i];
    }
	return 0;
 } 

运行时错误???

2024/12/28 19:51
加载中...