假设我有一个十六进制,例如"0xdc"
,如何在JS中将该十六进制string
转换为十六进制Number
类型?
从字面上看只是引号。 Number()
构造函数和parseInt()
刚刚将其转换为0到255之间的整数,我只想要0xdc
。
编辑:
为了使我的观点更加清楚:
我想从"0xdc"
(类型为String
)到0xdc
(类型为Number
)
答案 0 :(得分:2)
您可以先使用Number
构造函数,然后使用ParseInt
转换为基数10
console.log(parseInt(Number("0xdc"), 10));
JavaScript使用一些符号来识别数字格式,例如-
0x
=十六进制0b
=二进制0o
=八进制所以您无法拥有所需的东西。
答案 1 :(得分:2)
TL; DR
@dhaker的答案
parseInt(Number("0xdc"), 10)
是正确的。
在JavaScript中,数字0xdc
和220
的表示方式相同
所以
0xdc == 220
将返回true。
前缀0x
用于告诉javascript这个数字是hex
因此,无论您在哪里传递220
,都可以安全地传递0xdc
,反之亦然
除非另有说明,否则数字始终以10为底。
'0x' + Number(220).toString(16)
给出'0xdc'
,如果您想将其打印为字符串。
简而言之
parseInt('0x' + Number(220).toString(16),16) => 220