首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JS中将string类型的十六进制转换为number?

如何在JS中将string类型的十六进制转换为number?
EN

Stack Overflow用户
提问于 2018-06-24 19:26:27
回答 3查看 12.2K关注 0票数 5

假设我有一个十六进制的类型,例如"0xdc",在JS中如何将这个十六进制的string转换为十六进制的Number类型?

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

编辑:

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-24 19:35:56

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

代码语言:javascript
复制
console.log(parseInt(Number("0xdc"), 10));

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

  1. 0x = Hexadecimal
  2. 0b = Binary
  3. 0o =八进制

所以你不能得到你想要的。

票数 9
EN

Stack Overflow用户

发布于 2018-06-24 19:52:52

TL;DR

@dhaker的回答是

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

内存中的数字表示

在javascript中,数字0xdc220都以相同的方式表示

所以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

票数 3
EN

Stack Overflow用户

发布于 2021-09-08 14:41:12

如果你想将字符串转换成十六进制表示,你可以转换成16作为基数的数字。

代码语言:javascript
复制
parseInt("0xdc", 16)  // gives you 0xdc
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51009465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档