我的代码哪有问题
#include <bits/stdc++.h>
using namespace std;
string zhuan(long long num){
string x="";
while(num > 0){
x = char(num%2+'0') + x;
num /= 2;
}
return x;
}
string zhuan2(string num){
string x="";
while(num.size() > 7){
x = '1' + num.substr(num.size()-7,7) + x;
num.erase(num.size()-7,7);
}
int len = 7 - num.size();
for(int i=0;i<=len;i++){
num = '0' + num;
}
x = x + num;
return x;
}
void zhuan3(string num){
string x="";
int temp;
string ans="0123456789ABCDEF";
int flag=1;
while(num.size() != 0){
x = num.substr(0,4);
num.erase(0,4);
temp = (x[0]-'0')*8 + (x[1]-'0')*4 + (x[2]-'0')*2 + (x[3]-'0')*1;
if(flag % 2 == 0){
cout << ans[temp] << " ";
}
else{
cout << ans[temp];
}
flag++;
}
}
int main(){
long long n;
cin >> n;
string z =zhuan(n);
z = zhuan2(z);
zhuan3(z);
return 0;
}