【问题标题】:How to convert decimal to hexadecimal so that the result is a number and not a string?如何将十进制转换为十六进制,以便结果是数字而不是字符串?
【发布时间】:2020-04-20 18:13:14
【问题描述】:

我正在手动向 arduino 板发送十六进制数字,如下所示:sendToBoard(0xE) 我现在正在尝试将十进制数字转换为十六进制,但我只能获取字符串

const number = 14
number.toString(16) //e  --> string

我能否将这个“e”作为十六进制发送到董事会,如sendToBoard(number) //number === e (in hex)

【问题讨论】:

  • 不应该sendToBoard(14)sendToBoard(anyNumVar) 工作吗?无需转换——数字是 JS 中的数字。此外,14 是十六进制的 e,而不是 f
  • sendToBoard(value) 应该是一个数字。传递时如何表示该数字无关紧要。如果 value 是 14,您可以将其传递为 1.4e10o16140xe... value 仍然是 14。

标签: javascript arduino hex


【解决方案1】:

在 Javascript 中,数字是使用 double-precision 64-bit binary format 实现的。因此,即使您以十六进制格式显示它们,在后台它们也将使用浮点表示进行保存。

如果您有一个数字,并且您希望sendToBoard 函数接收一个数字作为其输入,那么只需传入该数字:

function sendToBoard(number){
    // you can later convert it to a string:
    const str = '0x' + number.toString(16).toUpperCase();
}

或者,如果您有一个十六进制表示的字符串,并且您希望 sendToBoard 接收数字类型,您可以执行以下操作:

const number = parseInt('0xf', 16);
sendToBoard(number);

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2017-08-23
    • 1970-01-01
    • 2013-02-07
    • 2018-01-31
    相关资源
    最近更新 更多