【问题标题】:why javascript automatically converts hexadecimal value into decimal when assigned to a variable?为什么javascript在分配给变量时会自动将十六进制值转换为十进制?
【发布时间】:2018-01-24 09:39:30
【问题描述】:

我正在尝试将一些十六进制格式的数据存储到 JavaScript 中的变量中,并以相同的格式读取数据。当我尝试将变量分配给十六进制值并显示它时,我得到了与十六进制等效的十进制值。

var a = 0x0F;
WScript.Echo("a = "+a);

我得到的是a = 15 而不是a = 0x0F。为什么会这样?是否可以获取十六进制格式的值?

【问题讨论】:

  • 0x0F, 0o170b1111 只是不同的写法 15. 你可以用(15).toString(16)
  • 十六进制是一种符号,而不是一种格式。如果您想以10 以外的基数输出数字,请将.toString 与所需的基数/基数一起使用。如果您想存储字节,Number 可能不是最适合您的解决方案,请查看Uint8Array

标签: javascript hex decimal type-conversion


【解决方案1】:

hexadecimal 类型在javascript 中不存在。

只有几种类型 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures):

  • 号码
  • 字符串
  • 对象
  • ...

您正在做的是一个带有hexadecimal 值的number 赋值。

但是,a 是一个数字,所以它的正常表示是decimal 形式。

要获得decimalnumberhexadecimal 值(如string),您可以查看此答案:https://stackoverflow.com/a/57805/5119765

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 2015-11-11
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多