public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for(int i = 0 ; i < n ; i++) {
Integer a = new Integer(Integer.parseInt(scan.next(),16));
//parseInt(a,b)一个b进制的a转化为10进制
System.out.println(Integer.toString(a,8));
//10进制的a转化为8进制
System.out.println(Integer.bitCount(a));
//计算二进制的a有多少个1
}
}
手动16进制->8进制
package aaa;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void slove(String str) {
int list[] = new int[400000+10];
for(int i = 0 ; i < str.length() ; i+=1) {
int temp = str.charAt(i) - '0';
if(str.charAt(i) == 'A') {
temp = 10;
}else if(str.charAt(i) == 'B') {
temp = 11;
}else if(str.charAt(i) == 'C') {
temp = 12;
}else if(str.charAt(i) == 'D') {
temp = 13;
}else if(str.charAt(i) == 'E') {
temp = 14;
}else if(str.charAt(i) == 'F') {
temp = 15;
}
for(int j = 3 ; j >= 0 ; j--) {
if(temp%2==0) {
list[i*4+j] = 0;
}else {
list[i*4+j] = 1;
}
temp/=2;
}
}
// for(int i = 0 ; i < str.length()*4 ; i++) {
// System.out.print(list[i] + " ");
// }
int list1[] = new int[400000+10];
int num= str.length()*4/3;
if(str.length()*4%3 != 0) {
num = num + 1;
}
int num1 = num;
for(int i = str.length()*4-1 ; i >= 0 ; i-=3) {
int sum = 0;
int pow = 1;
for(int j = i ; j > i-3 && j >= 0 ; j--) {
if(list[j] == 1) {
sum += pow;
}
pow*=2;
}
num--;
list1[num] = sum;
}
boolean flag = false;
for(int i = 0 ; i < num1 ; i++ ) {
if(list1[i] != 0 && flag == false) {
flag = true;
System.out.print(list1[i]);
continue;
}
if(flag == true) {
System.out.print("" + list1[i]);
}
}
if(str.charAt(0) == '0') {
System.out.print(0);
}
}
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for(int i = 0 ; i < n ; i++) {
String a1 = scan.next();
slove(a1);
System.out.println( );
}
scan.close();
}
}