#include <iostream>
#include <cstring>
using namespace std;
int exchange_HB(string num,string &num2)
{
for(int i=0;i<=num.length()-1;i++)
{
if(num[i]=='0')num2=num2+"0000";
if(num[i]=='1')num2=num2+"0001";
if(num[i]=='2')num2=num2+"0010";
if(num[i]=='3')num2=num2+"0011";
if(num[i]=='4')num2=num2+"0100";
if(num[i]=='5')num2=num2+"0101";
if(num[i]=='6')num2=num2+"0110";
if(num[i]=='7')num2=num2+"0111";
if(num[i]=='8')num2=num2+"1000";
if(num[i]=='9')num2=num2+"1001";
if(num[i]=='A')num2=num2+"1010";
if(num[i]=='B')num2=num2+"1011";
if(num[i]=='C')num2=num2+"1100";
if(num[i]=='D')num2=num2+"1101";
if(num[i]=='E')num2=num2+"1110";
if(num[i]=='F')num2=num2+"1111";
}
//cout<<num2<<endl;
}
int exchange_BO(string num2,string &num3)
{
int i;
for(i=num2.length()-3;i>=0;i=i-3)
{
string temp=num2.substr(i,3);
//cout<<temp<<endl;
if(temp=="000"&&i!=0)num3="0"+num3;
if(temp=="001")num3="1"+num3;
if(temp=="010")num3="2"+num3;
if(temp=="011")num3="3"+num3;
if(temp=="100")num3="4"+num3;
if(temp=="101")num3="5"+num3;
if(temp=="110")num3="6"+num3;
if(temp=="111")num3="7"+num3;
}
if(i==-1)
{
string temp=num2.substr(0,2);
if(temp=="00"&&i!=0)num3="0"+num3;
if(temp=="01")num3="1"+num3;
if(temp=="10")num3="2"+num3;
if(temp=="11")num3="3"+num3;
}
if(i==-2)
{
string temp=num2.substr(0,1);
if(temp=="0"&&i!=0)num3="0"+num3;
if(temp=="1")num3="1"+num3;
}
cout<<num3<<endl;
}
int main()
{
int n;
cin>>n;
while(1)
{
if(n==0)break;n--;
string num,num2,num3;
cin>>num;
exchange_HB(num,num2);
exchange_BO(num2,num3);
}
}
原博地址
https://blog.csdn.net/weixin_43673589