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

语言: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 浙江

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:我了个雷 1.实习经历写太长了吧,精简一点,你写那么老多,面试官看着都烦 2.项目经历你放俩竞赛干啥单独拿出来写上几等奖就行了呗 3.一大雷点就是项目经历里的那个课程设计,大家都知道课程设计巨水,不要写课程设计,换一个名字,就叫学生管理系统,面试官问就说是自己做的项目,不要提课程设计的事 4.那个交流经历,简化一下塞到最上面的教育经历里就行了 5.简历尽量一页纸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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