假设我有一个十六进制的类型,例如"0xdc",在JS中如何将这个十六进制的string转换为十六进制的Number类型?
从字面上看只是失去了引语。Number()构造函数和parseInt()只是将其转换为0到255之间的整数,我只需要0xdc。
编辑:
为了更清楚地说明我的观点:我想从"0xdc" (类型为String)转到0xdc (类型为Number)
发布于 2018-06-24 19:35:56
您可以先使用Number构造函数,然后使用ParseInt转换为基数10
console.log(parseInt(Number("0xdc"), 10));
JavaScript使用一些符号来识别数字格式,例如-
0x = Hexadecimal0b = Binary0o =八进制所以你不能得到你想要的。
发布于 2018-06-24 19:52:52
TL;DR
@dhaker的回答是
parseInt(Number("0xdc"), 10)是正确的。
内存中的数字表示
在javascript中,数字0xdc和220都以相同的方式表示
所以0xdc == 220将返回true。前缀0x用于告诉javascript这个数字是hex
因此,无论您在何处通过220 0xdc ,您都可以安全地通过0xdc,反之亦然
字符串格式
数字始终以10为基数显示,除非指定不以10为基数。
如果你想把它打印成字符串,'0x' + Number(220).toString(16)会给出'0xdc'。
简而言之
parseInt('0x' + Number(220).toString(16),16) => 220
发布于 2021-09-08 14:41:12
如果你想将字符串转换成十六进制表示,你可以转换成16作为基数的数字。
parseInt("0xdc", 16) // gives you 0xdchttps://stackoverflow.com/questions/51009465
复制相似问题