题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
const NUMBER_DOC = {
    a: 10,
    b: 11,
    c: 12,
    d: 13,
    e: 14,
    f: 15,
};

void (async function () {
    // Write your code here
    while ((line = await readline())) {
		//1、获取16进制的值,小写倒序
        let arr = line.toLowerCase().replace("0x", "").split("").reverse();
        let sum = 0;
		//2、把相应进制和位数相乘即可
        for (let i = 0; i < arr.length; i++) {
            sum += getNumber(arr[i]) * 16 ** i;
        }
        console.log(sum);
    }
})();

//借助字典获取10进制表示
var getNumber = function (val) {
    if (NUMBER_DOC[val]) {
        return NUMBER_DOC[val];
    } else {
        return parseInt(val);
    }
};

全部评论

相关推荐

07-15 16:52
已编辑
门头沟学院 Java
周五投的,流程今天结束
投递地平线等公司7个岗位
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务