求助
查看原帖
求助
1042481
All_In_Atom楼主2023/11/15 20:13

模拟出的答案一直不对,恳求大佬帮忙改正

#include<bits/stdc++.h>
using namespace std;
string a;
void str_To_Hex(string str){
    long long sum=0;
    for(int i=str.size()-1,k=1;i>=0;i--,k*=2){
        sum+=(str[i]-'0')*k;
    }
    printf("%02X ",sum);
}
int main(){
    long long n,k;
    cin>>n;
    k=n;
    while(k){
        a.push_back(k%2+'0');
        k/=2;
    }
    cout<<a<<endl;
    reverse(a.begin(),a.end());
    cout<<a<<endl;
    while(a.size()%7) a.insert(a.begin(),'0');
    cout<<a<<endl;
    a.insert(a.begin(),'0');
    for(int i=7;i<a.size()-1;i+=7){
        a.insert(a.begin()+i,'1');
        i++;
        // cout<<a<<" "<<i<<" "<<a.size()<<endl;
    }
    cout<<a<<endl;
    for(int i=a.size();i>0;i-=8){
        int st=i-8;
        string str;
        cout<<st<<endl;
        str=a.substr(st,8);
        str_To_Hex(str);
        cout<<str<<endl;
    }
    return 0;
}
/* 下附样例的数据参考和我的测试答案
样例:
CE 11001110
98 10011000
C8 11001000
A6 10100110
CB 11001011
B6 10110110
DA 11011010
0D 00001101
1100111010011000110010001010011011001011101101101101101000001101
我的测试答案
4E 01001110
17 00010111
49 01001001
27 00100111
F5 11110101
4B 01001011
37 00110111
DB 11011011
0D 00001101
*/
2023/11/15 20:13
加载中...