,

HJ5.进制转换

描述 对于给定的十六进制数,输出其对应的十进制表示。 在本题中,十六进制数的格式为:0x0x 开头,后跟若干个…

描述

对于给定的十六进制数,输出其对应的十进制表示。

在本题中,十六进制数的格式为:0x0x 开头,后跟若干个十六进制数字(保证为 0-90-9 和 A-FA-F 中的一个)。其中,A-FA-F 依次代表十进制中的 10∼1510∼15。

输入描述:

在一行上输入一个十六进制数 ss,代表待转换的十六进制数,格式见题干。保证 ss 转化得到的十进制数 xx 的范围为 1≦x<2311≦x<231。

输出描述:

在一行上输出一个整数,代表 ss 对应的十进制数。

第一种

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        const ori = line.trim();
        //console.log(ori,'ori')
        const str = line.trim().substring(2);
        //console.log(str)
        let oriStr = 0;
        const strArr = str.split("");
        const dicObj = {
            a:10,
            b:11,
            c:12,
            d:13,
            e:14,
            f:15
        }
        for(let i=strArr.length-1;i>=0;i--){
            let tmpNum = strArr[i]
            if(dicObj?.[strArr[i].toLowerCase()]){
                tmpNum = dicObj[strArr[i].toLowerCase()] * 1
                //console.log(tmpNum,'tmpNum')
            }
            oriStr += tmpNum * Math.pow(16,strArr.length-1-i);
        }
        console.log(oriStr)
    }
}()

第二种

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        const ori = line.trim();
        console.log(parseInt(ori,16))
    }
}()

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About the Author

每个人都有自己得时区,在自己得时区里,一切都是准时的。

BlockSpare — News, Magazine and Blog Addons for (Gutenberg) Block Editor