[牛客网刷题]写出一个程序,接受一个十六进制的数,输出该数值的十进制表示

本文介绍如何编写程序,将输入的十六进制数转化为其对应的十进制表示。例如,输入0xA和0xAA,程序分别输出10和170。

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

输入:
0xA
0xAA

输出:
10
170

2020.04写的:

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            String hexNum = scanner.nextLine();
            hexNum = hexNum.toLowerCase();
            String substring = hexNum.substring(2);
            int result = 0;
            for (int i = substring.length()-1 ,j=0; i >= 0  ; i--,j++) {
                char c = substring.toCharArray()[i];
                if (c >= 'a' && c<='f'){
                    result += (c - 'a'+10)*(int)Math.pow(16,j);
                }else{
                    result += (c-'0')*(int) Math.pow(16,j);
                }
            }
            System.out.println(result);
        }
    }
}

六个月后2020.11:写的:

package thinking_in_java;

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			String s = sc.nextLine().toUpperCase();
			if (s.startsWith("0X")) s = s.substring(2);
			System.out.println(Integer.parseInt(s, 16));
		}
	}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值