#include<string>
#include<iostream>
#include<stdlib.h>
using namespace std;
void change(string a[], int n)
{
string b;
for (int i = 0; i < a[n].size(); i++)
{
switch (a[n][i])
{
case '0':b += "0000"; break;
case '1':b += "0001"; break;
case '2':b += "0010"; break;
case '3':b += "0011"; break;
case '4':b += "0100"; break;
case '5':b += "0101"; break;
case '6':b += "0110"; break;
case '7':b += "0111"; break;
case '8':b += "1000"; break;
case '9':b += "1001"; break;
case 'A':b += "1010"; break;
case 'B':b += "1011"; break;
case 'C':b += "1100"; break;
case'D':b += "1101"; break;
case'E':b += "1110"; break;
case 'F':b += "1111"; break;
default:break;
}
}//16進制轉化為2進制
if (b.size() % 3 == 1)
{
b = "00" + b;
}
if (b.size() % 3 == 2)
{
b = "0" + b;
}//2進制轉化為8進制
int flag = 0;//設個東西把轉成八進制后前面那個0去掉
for (unsigned int i = 0; i < b.size() - 2; i = i + 3)
{
int p = 4 * (b[i] - '0') + 2 * (b[i + 1] - '0') + (b[i + 2] - '0');
if (p)
{
flag = 1;
}
if (flag)
{
cout << p;
}
}
}
int main()
{
int n;
cin >> n;//幾個16進制數
string a[30];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int i = 0; i < n; i++)
{
change(a, i);
cout << endl;
}
return 0;
}
小白流淚,做了一個小時,= =,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402666.html
標籤:其他
下一篇:新年程式員福利(多圖)
