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

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

内容简介:问题描述给定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 基础练习 十六进制转八进制

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

查看所有标签

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

JavaScript权威指南

JavaScript权威指南

弗拉纳根 / 东南大学出版社 / 2007-6 / 99.00元

《JavaScript权威指南(影印版)(第5版)》已经经过全面地修订和扩展,涵盖了构建当今Web2.0应用程序所需的JavaScript技术。《JavaScript权威指南(影印版)(第5版)》不仅是一本实例驱动的程序员指南,同时也是一本可以摆在桌边随时查阅的参考手册,它以全新的章节阐述了有效使用Javascript脚本所需要知道的一切,包括: 脚本化的HTTP和Ajax;XML处理;使用......一起来看看 《JavaScript权威指南》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

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

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换