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 not0xdc
,我希望将其发送到通过UDP发送的缓冲区中的动态值,例如:Buffer.from([0x00,0x0E,dynamicStringValue,0xef])
dynamicStringValue
应该是一个数字而不是字符串,这样我的缓冲区才能正常工作,对吗?看到上面的答案,你是对的。我可以将代码生成的整数发送到我的缓冲区。谢谢。这里的parseInt()
是多余的Number()
已返回一个数字类型(该类型在内部仅存储在1和0中,不知道原始字符串是否为二进制/八进制/十进制/十六进制)。这里所有的parseInt()
都是将Number(“0xdc”)
的结果转换回一个(十进制/base-10)字符串,然后再转换成相同的数字。啊,我明白了,我理解错了。我可以用以10为基数的表示法。谢谢