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

语言:Js

代码:

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())) {
        let str = line.substring(2).toUpperCase();
        let tokens = str.split('');
        let obj = {
            A: "10",
            B: "11",
            C: "12",
            D: "13",
            E: "14",
            F: "15",
            a: "10",
            b: "11",
            c: "12",
            d: "13",
            e: "14",
            f: "15",
        };
        let resultArr = [];
        tokens.forEach((item) => {
            Object.keys(obj).forEach((key) => {
                if (item === key) {
                    resultArr.push(obj[key]);
                }
            });
        });

        let sum = 0;
        resultArr.forEach((val, index) => {
            let newVal = val * Math.pow(16, index);
            sum += newVal;
        });
        console.log(sum);
    }
})();

全部评论
十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14,15; 16进制转10进制: 像10进制数一样的说,把16进制数看成有个位数,十位数,百位数…… 将“个位数”乘上16的0次方(*16^0), 将“十位数”乘上16的1次方(*16^1), 将“百位数”乘上16的2次方(*16^2), …… …… 最后将所有上面得到的数加起来就是他的十进制数了
点赞 回复 分享
发布于 2024-07-08 13:58 浙江

相关推荐

不愿透露姓名的神秘牛友
今天 12:20
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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