思路一:简单方法——调用java自带的方法,==发生了错误==,这个方法本质上是16进制先转化为10进制,10进制再转化为8进制,但是因为输入的16进制的位数很多,导致转化后得到的10进制数很大,大到连`long`也放不下　前言　进制转化包括这篇我写了三篇了,这篇没讲的好多要点都在其他两篇讲到了大家有需要请点击下面链接跳转去学习　有点累了,害,Keep　Walking　试题　基础练习　十六进制转八进制　资源限制　时间限制:1.0s　内存限制:512.0MB　问题描述　给定n个十六进制正整数,输出它们对应的八进制数。　输入格式　输入的第一行为一个正整数n　(1<=n<=10)。　接下来n行,每行一个由0　9、大写字母A　F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。　输出格式　输出n行,每行为输入对应的八进制正整数。　【注意】　输入的十六进制数不会有前导0,比如012A。　输出的八进制数也不能有前导0。　样例输入　123ABC　样例输出　【提示】　先将十六进制数转换成某进制数,再由某进制数转换成八进制。　要点　仍然是数据范围　输入的16进制位数这么多,那肯定转化后的10进制数也很大啊,而且长度为100000的16进制数转化后的10进制数即使是　long　也放不下啊　但是我们可以用　String　型,因为它容纳足够多的字符,我们将16进制字符串,转化为2进制字符串,再转化为8进制字符串　16进制可以转化为4位2进制数,3位2进制数可以转化为1位8进制数　一定要注意题目给你的暗示　我们将16进制字符串,转化为2进制字符串,再转化为8进制字符串　思路一:简单方法——调用java自带的方法,　发生了错误　,这个方法本质上是16进制先转化为10进制,10进制再转化为8进制,但是因为输入的16进制的位数很多,导致转化后得到的10进制数很大,大到连　long　也放不下　Integer　.　toOctalString　(　Integer　.　valueOf　(　array　[　i　]　,　16　)　)　Integer.valueOf(array[i],　16)　Integer.valueOf(String　s,in　radix)　(return)Integer　该方法用来讲某字符串按某进制转化为　Integer　型,第一个参数为需要转化的字符串,第