#include<iostream>
#include<cstdio>
#include<ctype.h>
#include<cstring>
using namespace std;
char a[100010];
int f(char c) {
if(isalpha(c)) return c-'A'+10;
else return c-'0';
}
int main() {
int n,i;
scanf("%d",&n);
while(n--) {
scanf("%s",a);
int len= strlen(a);
if(len%3==1) {
printf("%o",f(a[0]));
i=1;
}
else if(len%3==2) {
printf("%o",f(a[0])*16+f(a[1]));
i=2;
}
else {
printf("%o",f(a[0])*256+f(a[1])*16+f(a[2]));
i=3;
}
for(; i<len; i+=3) printf("%04o",f(a[i])*256+f(a[i+1])*16+f(a[i+2]));
printf("\n");
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<ctype.h>
#include<cstring>
using namespace std;
char a[100010];
int f(char c) {
if(isalpha(c)) return c-'A'+10;
else return c-'0';
}
int main() {
int n,i;
scanf("%d",&n);
while(n--) {
scanf("%s",a);
int len= strlen(a);
if(len%3==1) {
printf("%o",f(a[0]));
i=1;
}
else if(len%3==2) {
printf("%o",f(a[0])*16+f(a[1]));
i=2;
}
else {
printf("%o",f(a[0])*256+f(a[1])*16+f(a[2]));
i=3;
}
for(; i<len; i+=3) printf("%04o",f(a[i])*256+f(a[i+1])*16+f(a[i+2]));
printf("\n");
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<ctype.h>
#include<cstring>
using namespace std;
char a[100010];
int f(char c) {
return c-'0';
}
int main() {
int n,i;
scanf("%d",&n);
while(n--) {
scanf("%s",a);
int len= strlen(a);
if(len%2==1) {
printf("%x",f(a[0]));
i=1;
}
else {
printf("%x",f(a[0])*8+f(a[1]));
i=2;
}
for(; i<len; i+=2) printf("%x",f(a[i])*8+f(a[i+1]));
printf("\n");
}
return 0;
}
进制转换成十进制,对应的十进制在%x的作用下转换成十六进制:代码如下:#include<iostream>
#include<cstdio>
#include<ctype.h>
#include<cstring>
using namespace std;
char a[100010];
int f(char c) {
return c-'0';
}
int main() {
int n,i;
scanf("%d",&n);
while(n--) {
scanf("%s",a);
int len= strlen(a);
if(len%2==1) {
printf("%x",f(a[0]));
i=1;
}
else {
printf("%x",f(a[0])*8+f(a[1]));
i=2;
}
for(; i<len; i+=2) printf("%x",f(a[i])*8+f(a[i+1]));
printf("\n");
}
return 0;
}