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

语言: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), …… …… 最后将所有上面得到的数加起来就是他的十进制数了
点赞 回复 分享
发布于 07-08 13:58 浙江

相关推荐

11-13 18:32
门头沟学院 Java
点赞 评论 收藏
分享
11-11 14:57
南京大学 Java
美团 财务科技 23k
点赞 评论 收藏
分享
10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务