JavaScript 十六进制转十进制「字符串处理」🔢
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
算法思路
本题要求将一个十六进制数转换为十进制数。十六进制数是以 0x 开头的字符串,而我们需要将其转化为对应的十进制整数。
- 十六进制到十进制的转换规则:十六进制每一位对应的值为
0~9和A~F(分别表示 0~15),从右到左依次乘以16的幂次。- 比如
0xAA,即A * 16^1 + A * 16^0,其中A对应十进制的 10,最终结果为170。
- 比如
- 输入输出:输入是一个十六进制字符串,输出对应的十进制字符串。
在 JavaScript 中,转换十六进制到十进制非常简单,可以使用内置的 parseInt 函数,传入 16 作为第二个参数。
Code
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// 读取输入的十六进制字符串
let hexStr = await readline();
// 使用 parseInt 函数将十六进制字符串转为十进制整数
let decimalValue = parseInt(hexStr, 16);
// 输出对应的十进制值
console.log(decimalValue);
}();
复杂度分析
- 时间复杂度:
O(n),其中n是输入字符串的长度。我们需要遍历每个字符来完成转换。 - 空间复杂度:
O(1),只使用了常数空间来存储输入和结果。

查看13道真题和解析