十六进制转八进制 Java 蓝桥杯基础训练 12 简单解法
题目
思路
**1.**首先看到进制转换在Java首先想到的是调用Integer相关转换方法。
**2.**但我大意了,没看题。
当我在查阅测试数据时发现了那些长度恐怖的十六进制数时,才意识到事情的不对劲。在100000的长度面前,常用的基本数据类型基本报废。
**3.**网上的一些方法都是将十六进制转换成二进制,再从二进制转换成八进制。
**4.**实际上这有点繁琐。我们可以使用BigInteger大数类和toString()解决。
Java代码
// An highlighted block
import java.util.Scanner;
import java.math.BigInteger;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] str = new String[n];
for (int i = 0; i < n; i++) {
str[i] = sc.next();
BigInteger bt=new BigInteger(str[i], 16);
System.out.println(bt.toString(8));
}
}
}