给定n个十六进制正整数,输出它们对应的八进制数。

  • Post author:
  • Post category:其他




问题描述

给定n个十六进制正整数,输出它们对应的八进制数。

输入格式

输入的第一行为一个正整数n (1<=n<=10)。

接下来n行,每行一个由0

9、大写字母A

F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式

输出n行,每行为输入对应的八进制正整数。

【注意】

输入的十六进制数不会有前导0,比如012A。

输出的八进制数也不能有前导0。

样例输入

2

39

123ABC

样例输出

71

4435274

【提示】

先将十六进制数转换成某进制数,再由某进制数转换成八进制。

这个代码只是能按例题输出结果

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String xx = null;
		String ss = null;
		String[] shu = new String[n];
		for (int i = 0; i < n; i++) {
			xx = sc.next();
			// 将十六进制转为二进制
			Integer num = Integer.parseInt(xx, 16);
			String a = Integer.toBinaryString(num);

			// 将二进制转为十进制
			int oct = Integer.parseInt(a, 2);

			// 将十进制转为八进制
			ss = Integer.toOctalString(oct);
			shu[i] = ss;
		}
		for (String string : shu) {
			System.out.println(string);
		}
	}
}



版权声明:本文为C_Scorpio原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。