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

问题描述 投票:0回答:3

假设我有一个十六进制,例如

"0xdc"
,如何在JS中将这个十六进制
string
转换为十六进制
Number
类型?

实际上只是丢失了引号。

Number()
构造函数和
parseInt()
只是将其转换为0到255之间的整数,我只想要
0xdc

编辑:

为了让我的观点更清楚: 我想从

"0xdc"
(类型为
String
)到
0xdc
(类型为
Number

javascript hex byte
3个回答
61
投票

可以使用

Number
函数,该函数将字符串按照一定的格式解析为数字。

console.log(Number("0xdc"));

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

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

10
投票

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

parseInt("0xdc", 16)  // gives you the number 220

4
投票

TL;博士

@dhaker 的回答

parseInt(Number("0xdc"), 10)
正确。

内存中数字表示

数字

0xdc
220
在 javascript 中以相同的方式表示

所以

0xdc == 220
将返回 true。 前缀
0x
用于告诉 javascript 该数字是
hex

所以无论您经过

220
,您都可以安全地通过
0xdc
,反之亦然

字符串格式

数字始终以 10 为基数显示,除非另有说明。

如果您想将其打印为字符串,则

'0x' + Number(220).toString(16)
给出
'0xdc'


简而言之

parseInt('0x' + Number(220).toString(16),16) => 220

© www.soinside.com 2019 - 2024. All rights reserved.