[Java] 蓝桥杯BASIC-12 基础练习 十六进制转八进制

栏目: Java · 发布时间: 7年前

内容简介:问题描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式

问题描述

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

输入格式

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

接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式

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

【注意】

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

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

样例输入

2

39

123ABC

样例输出

71

4435274

【提示】

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

package base12;
 
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        char[] str;
        int[] des = new int[100];
        long sum = 0;
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.nextLine();
        str = in.next().toCharArray();
        in.close();
        //16进制转换成10进制
        for (int i = 0; i < str.length; i++) {
            if (str[i] >= 'A' && str[i] <= 'F') {
                sum = sum * 16 + str[i] - 'A' + 10;
            } else {
                sum = sum * 16 + str[i] - '0';
            }
        }
        int k = 0;
        //10进制转8进制
        while (sum > 0) {
            des[k++] = (int) (sum % 8);
            sum /= 8;
        }
        for (int i = k - 1; i >= 0; i--) {
            System.out.print(des[i]);
        }
 
    }
}
❤❤点击这里 -> 订阅PAT、蓝桥杯、GPLT天梯赛、LeetCode题解离线版❤❤ [Java] 蓝桥杯BASIC-12 基础练习 十六进制转八进制

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Servlet与JSP核心编程

Servlet与JSP核心编程

(美国)霍尔等著、赵学良译 / 霍尔 / 清华大学出版社 / 2004-06-01 / 59.0

《Servlet与JSP核心编程》(第2版)叙述详尽,条理清晰。对于初学者来说是一本不可多得的入门书籍,经验丰富的Servelet和JSP开发人员也可以通过阅读《Servlet与JSP核心编程》(第2版)得到巩固和提高。一起来看看 《Servlet与JSP核心编程》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试