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

Javascript 如何在JS中将字符串类型的十六进制转换为数字?,javascript,hex,byte,Javascript,Hex,Byte,假设我有一个十六进制,例如“0xdc”,如何将这个十六进制字符串转换为JS中的十六进制数字类型 从字面上说,只是失去了报价。Number()构造函数和parseInt()刚刚将其转换为0到255之间的整数,我只需要0xdc 编辑: 为了更清楚地说明我的观点: 我想从“0xdc”(类型String)转到0xdc(类型Number)您可以先使用Number构造函数,然后使用ParseInt将其转换为基数10 console.log(parseInt(Number(“0xdc”),10))TL;博士

假设我有一个十六进制,例如
“0xdc”
,如何将这个十六进制
字符串
转换为JS中的十六进制
数字
类型

从字面上说,只是失去了报价。
Number()
构造函数和
parseInt()
刚刚将其转换为0到255之间的整数,我只需要
0xdc

编辑:

为了更清楚地说明我的观点:
我想从
“0xdc”
(类型
String
)转到
0xdc
(类型
Number

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

console.log(parseInt(Number(“0xdc”),10))TL;博士

@达克的回答

parseInt(数字(“0xdc”),10)
正确

内存中的数字表示 在javascript中,数字
0xdc
220
的表示方式相同

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

因此,无论您在哪里通过
220
都可以安全通过
0xdc
,反之亦然

字符串格式 除非另有规定,否则数字总是以10为基数显示

'0x'+数字(220)。如果要将其打印为字符串,则toString(16)
将提供
'0xdc'


简而言之


parseInt('0x'+数字(220)。toString(16),16)=>220

不,它仍然返回一个精确的数字220。我想要文本字节,所以我想要的不是
“0xdc”
,而是
0xdc
您想用
0xdc
数字
类型做什么?。如果您分配任何变量,如
var v=0xdc
,如果您尝试执行
console.log(v)
,它将给出220 not
0xdc
,我希望将其发送到通过UDP发送的缓冲区中的动态值,例如:
Buffer.from([0x00,0x0E,dynamicStringValue,0xef])
dynamicStringValue
应该是一个数字而不是字符串,这样我的缓冲区才能正常工作,对吗?看到上面的答案,你是对的。我可以将代码生成的整数发送到我的缓冲区。谢谢。这里的
parseInt()
是多余的
Number()
已返回一个数字类型(该类型在内部仅存储在1和0中,不知道原始字符串是否为二进制/八进制/十进制/十六进制)。这里所有的
parseInt()
都是将
Number(“0xdc”)
的结果转换回一个(十进制/base-10)字符串,然后再转换成相同的数字。啊,我明白了,我理解错了。我可以用以10为基数的表示法。谢谢