You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include<bits/stdc++.h>
|
|
|
|
|
using namespace std;
|
|
|
|
|
int main() {
|
|
|
|
|
int n = 0, i = 0, j = 0, temp = 0, nNum = 0;
|
|
|
|
|
char ch;
|
|
|
|
|
string strHex[10];
|
|
|
|
|
string strBin[10];
|
|
|
|
|
string strOct[10];
|
|
|
|
|
|
|
|
|
|
cin>>n;
|
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
|
cin>>strHex[i];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
|
j = 0;
|
|
|
|
|
while (strHex[i][j]) {
|
|
|
|
|
switch(strHex[i][j]) {
|
|
|
|
|
case '0':
|
|
|
|
|
strBin[i] += "0000";
|
|
|
|
|
break;
|
|
|
|
|
case '1':
|
|
|
|
|
strBin[i] += "0001";
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
strBin[i] += "0010";
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
strBin[i] += "0011";
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
strBin[i] += "0100";
|
|
|
|
|
break;
|
|
|
|
|
case '5':
|
|
|
|
|
strBin[i] += "0101";
|
|
|
|
|
break;
|
|
|
|
|
case '6':
|
|
|
|
|
strBin[i] += "0110";
|
|
|
|
|
break;
|
|
|
|
|
case '7':
|
|
|
|
|
strBin[i] += "0111";
|
|
|
|
|
break;
|
|
|
|
|
case '8':
|
|
|
|
|
strBin[i] += "1000";
|
|
|
|
|
break;
|
|
|
|
|
case '9':
|
|
|
|
|
strBin[i] += "1001";
|
|
|
|
|
break;
|
|
|
|
|
case 'A':
|
|
|
|
|
strBin[i] += "1010";
|
|
|
|
|
break;
|
|
|
|
|
case 'B':
|
|
|
|
|
strBin[i] += "1011";
|
|
|
|
|
break;
|
|
|
|
|
case 'C':
|
|
|
|
|
strBin[i] += "1100";
|
|
|
|
|
break;
|
|
|
|
|
case 'D':
|
|
|
|
|
strBin[i] += "1101";
|
|
|
|
|
break;
|
|
|
|
|
case 'E':
|
|
|
|
|
strBin[i] += "1110";
|
|
|
|
|
break;
|
|
|
|
|
case 'F':
|
|
|
|
|
strBin[i] += "1111";
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
++j;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>˽<EFBFBD><CBBD><EFBFBD>
|
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
|
j = strBin[i].size()-1;//<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>
|
|
|
|
|
while (strBin[i][j] && j>=0) {
|
|
|
|
|
temp = 3;
|
|
|
|
|
nNum = 0;
|
|
|
|
|
while (temp-- && j>=0) {
|
|
|
|
|
if ('1' == strBin[i][j]) {
|
|
|
|
|
switch(temp) {
|
|
|
|
|
case 0:
|
|
|
|
|
nNum += 4;
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
nNum += 2;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
nNum += 1;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
--j;
|
|
|
|
|
}
|
|
|
|
|
strOct[i] += (nNum+'0');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
|
temp = strOct[i].size()-1;
|
|
|
|
|
for (j = 0; j <= temp/2; ++j) {
|
|
|
|
|
ch = strOct[i][j];
|
|
|
|
|
strOct[i][j] = strOct[i][temp-j];
|
|
|
|
|
strOct[i][temp-j] = ch;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ӡ
|
|
|
|
|
for (i = 0; i < n; ++i) {
|
|
|
|
|
j = 0;
|
|
|
|
|
while (strOct[i][j++] == '0');//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>0
|
|
|
|
|
for(--j; j < strOct[i].size(); ++j) {
|
|
|
|
|
cout<<strOct[i][j]-'0';
|
|
|
|
|
}
|
|
|
|
|
/*if (i != n-1)*/
|
|
|
|
|
cout<<endl;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|