求调&玄关
  • 板块学术版
  • 楼主xiaozhengguo123
  • 当前回复0
  • 已保存回复1
  • 发布时间2024/12/27 21:28
  • 上次更新2024/12/28 10:50:26
查看原帖
求调&玄关
1421829
xiaozhengguo123楼主2024/12/27 21:28

八进制转换二进制

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

signed main ()
{
	string s;
	cin>>s;
	int a[s.size()] = {0};
	int n = s.size();
	for (int i = 0;i<n;i++)
	{
		a[i] = s[n-i-1]-'0';
	}
	int 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;
    string q = "";
    int er = 0;
	while (num!=0)
	{
        q[er] = (char)num%2+48;
        num-=num%2;
        num/=2;
        er++;
	}
    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/27 21:28
加载中...