进制转换
发布日期:2021-05-07 22:02:57 浏览次数:19 分类:精选文章

本文共 1063 字,大约阅读时间需要 3 分钟。

问题描述

用户输入三个字符,每个字符取值范围是0-9,A-F。程序将将这三个字符转换为相应的十六进制整数,并分别以十六进制、十进制、八进制输出。若十六进制表示为3位,八进制表示为4位,若不够前面补0。

输入示例

输入:1D5

输出示例

Hex: 0x1D5

Decimal: 469
Octal: 0725


Java实现代码

可以使用Java的API进行进制转换,也可以使用BigInteger对输入的字符串进行进制转换。以下是实现代码:

import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
BigInteger num = new BigInteger(s, 16);
System.out.print("Hex: 0x");
int len = s.length();
while (len < 3) {
System.out.print("0");
len++;
}
System.out.println(s);
System.out.println("Decimal: " + num.toString(10));
String octalStr = num.toString(8);
len = octalStr.length();
while (len < 4) {
System.out.print("0");
len++;
}
System.out.print(octalStr);
}
}

代码解释

  • 输入处理:使用Scanner读取输入字符串,转换为BigInteger对象。
  • 十六进制输出:直接打印输入字符串,前面补0使其长度为3。
  • 十进制输出:调用BigInteger的toString(10)方法获取十进制字符串。
  • 八进制输出:获取八进制字符串,前面补0使其长度为4。
  • 上一篇:三进制数位和
    下一篇:关于递归的进一步的理解

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年04月22日 07时44分24秒