代码之家  ›  专栏  ›  技术社区  ›  Fabian Tjoe A On

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

  •  1
  • Fabian Tjoe A On  · 技术社区  · 6 年前

    比如说我有一个十六进制 "0xdc" ,如何转换此十六进制 string 十六进制 Number 输入js?

    字面上就是失去了报价。这个 Number() 构造器和 parseInt() 刚把它转换成0到255之间的整数 0xdc 是的。

    编辑:

    让我的观点更清楚: 我想从 “0xDC” (类型 String ),至 0xDC (类型 数字 )

    2 回复  |  直到 6 年前
        1
  •  2
  •   dhaker    6 年前

    你可以用 Number 先构造器再构造器 ParseInt 转换为基数10

    console.log(parseInt(Number("0xdc"), 10));

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

    1. 0x =十六进制
    2. 0b =二进制
    3. 0o =八进制

    所以你不能拥有你所需要的。

        2
  •  2
  •   Amit    6 年前

    TL;博士

    @达克的回答

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

    内存号表示

    两个数字 0xdc 220 在javascript中以相同的方式表示

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

    所以无论你经过哪里 220个 你可以安全通过 0xDC 反之亦然

    字符串格式

    数字总是以10为基数显示,除非指定不以。

    '0x' + Number(220).toString(16) 给予 '0xdc' 如果你想打印成字符串。


    一言以蔽之

    parseInt('0x' + Number(220).toString(16),16) => 220