刚好准备蓝桥杯,在代码方面就是个小白,大佬勿喷,仅仅是存个档
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
string s1;//用于存16进制
string s2;//用于存2进制
int n;
int i;
int a;//用于二进制转化
int t;//用于二进制转化
int j;//用于判断第一位前导0;
int num;//
cin>>n;
while(n)
{
cin>>s1;
s2="";
//s1.length()
for(i=0;i<s1.length();i++)
{
switch(s1[i])
{
case '0':
s2+="0000";break;
case '1':
s2+="0001";break;
case '2':
s2+="0010";break;
case '3':
s2+="0011";break;
case '4':
s2+="0100";break;
case '5':
s2+="0101";break;
case '6':
s2+="0110";break;
case '7':
s2+="0111";break;
case '8':
s2+="1000";break;
case '9':
s2+="1001";break;
case 'A':
s2+="1010";break;
case 'B':
s2+="1011";break;
case 'C':
s2+="1100";break;
case 'D':
s2+="1101";break;
case 'E':
s2+="1110";break;
case 'F':
s2+="1111";break;
}
}
num=s2.length();
if(num%3==1)
{
s2="00"+s2;
}
if(num%3==2)
{
s2="0"+s2;
}
for(i=0,j=0;i<s2.length();j++)
{
for(num=0,a=0;num<3;num++)
{
t=s2[i]-'0';
a=a*2+t;
i++;
}
if(j<1)
{
if(a!=0)
{
cout<<a;
}
}
else
{
cout<<a;
}
}
cout<<endl;
n--;
}
}