你如何在JS中将字符串类型的十六进制转换为数字?

Fab*_* On 3 javascript hex byte

假设我有一个十六进制,例如"0xdc",我如何将这个十六进制转换stringNumberJS 中的十六进制类型?

从字面上看只是失去了引号。该Number()构造函数和parseInt()只是将其转化为在0和255之间的整数,我只想0xdc

编辑:

为了让我的观点更清楚:我想从"0xdc"(类型String)到0xdc(类型Number

dha*_*ker 7

您可以先使用Number构造函数然后ParseInt转换为基数 10

console.log(parseInt(Number("0xdc"), 10));
Run Code Online (Sandbox Code Playgroud)

JavaScript 使用一些符号来识别数字格式,如 -

  1. 0x = 十六进制
  2. 0b = 二进制
  3. 0o = 八进制

所以你不能拥有你需要的东西。

  • 这里的 parseInt() 是多余的。`Number()` 已经返回一个数字类型(其内部仅存储在 1 和 0 中,并且不知道原始字符串是否是二进制/八进制/十进制/十六进制)。`parseInt()` 在这里所做的就是将 `Number("0xdc")` 的结果转换回(十进制/以 10 为底)字符串,然后再次将其转换为相同的数字。 (2认同)

hua*_*tao 7

如果要将字符串转换为十六进制表示形式,可以转换为以 16 为基数的数字。

parseInt("0xdc", 16)  // gives you 0xdc
Run Code Online (Sandbox Code Playgroud)