package cn.edu.lanqiao.basetrain;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Scanner;
public class BASIC_12_2 {
/**
* @param args
*
* 2
39
123ABC
*/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String[] num=new String[n];
//接受输入的数
for(int i=0;i<n;i++){
num[i]=sc.next();
}
for(int i=0;i<n;i++){
String sn="";
BigInteger decimal=toDecimal(num[i]);
//System.out.println(decimal);
if(decimal.compareTo(BigInteger.valueOf(0))==0){
System.out.println(0);
}
while(decimal.compareTo(BigInteger.valueOf(0))!=0){
sn=sn+decimal.mod(BigInteger.valueOf(8));
decimal=decimal.divide(BigInteger.valueOf(8));
}
//System.out.println(sn);
System.out.println(new StringBuffer(sn).reverse());
}
}
//十六进制转化为十进制---------
public static BigInteger toDecimal(String s){
BigInteger dec = BigInteger.valueOf(0);
BigInteger big = BigInteger.valueOf(16);
DecimalFormat dt=new DecimalFormat("#");
for(int i=0;i<s.length();i++){
//返回指定索引处的字符
char ch=s.charAt(i);
//判断该字符是否为数字
if(Character.isDigit(ch)){
//如果是数字,按照公式转化
//首先将指定字符转化为字符串,
String ss=String.valueOf(ch);
long s1=Integer.parseInt(ss);
//BigInteger a=new BigInteger("Integer.parseInt(ss)*Math.pow(16, s.length()-1-i)");
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-1-i).multiply(BigInteger.valueOf(s1)))));
}
else{
if(ch=='A'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(10)))));
//dec=dec.add(new BigInteger(dt.format(10*Math.pow(16,s.length()-i-1))));
}else if(ch=='B'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(11)))));
}else if(ch=='C'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(12)))));
}else if(ch=='D'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(13)))));
}else if(ch=='E'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(14)))));
}else if(ch=='F'){
dec=dec.add(new BigInteger(dt.format(big.pow(s.length()-i-1).multiply(BigInteger.valueOf(15)))));
}
}
}
return dec;
}
}
${尽余生}
发布了16 篇原创文章 · 获赞 1 · 访问量 1414
私信
关注