如何在JavaScript中使用LOOP将十六进制转换为十进制

2 javascript hex loops decimal typescript

是否可以通过循环将十六进制数转换为十进制数?

示例:输入“ FE”输出“ 254”

我看着那些问题:

如何在JavaScript中将小数转换为十六进制?

编写将十六进制转换为十进制 的函数编写将十六进制转换为十进制的函数

编写将十六进制转换为十进制的函数

如何在R中将十六进制转换为十进制

如何在c#.net中将十六进制转换为十进制?

还有一些与JS或循环无关的信息。我也在寻找其他语言的解决方案,以防万一我找到了解决方法,但是没有。第一个是最有用的。也许我可以用16来表示,将结果与预设值比较并打印结果,但是我想尝试使用循环。我该怎么做?

tri*_*cot 5

知道您可以使用oneliner(使用parseInt)完成此操作,也许您正在寻找类似的内容?

function hexToDec(hex) {
    var result = 0, digitValue;
    hex = hex.toLowerCase();
    for (var i = 0; i < hex.length; i++) {
        digitValue = '0123456789abcdefgh'.indexOf(hex[i]);
        result = result * 16 + digitValue;
    }
    return result;
}

console.log(hexToDec('FE'));
Run Code Online (Sandbox Code Playgroud)

另类

也许您想使用reduce和ES6 箭头功能

function hexToDec(hex) {
    return hex.toLowerCase().split('').reduce( (result, ch) =>
        result * 16 + '0123456789abcdefgh'.indexOf(ch), 0);
}

console.log(hexToDec('FE'));
Run Code Online (Sandbox Code Playgroud)