Как преобразовать десятичное число в шестнадцатеричное, чтобы результат был числом, а не строкой? - PullRequest
0 голосов
/ 20 апреля 2020

Я вручную отправляю числа на доску Arduino в шестнадцатеричном виде, как это: sendToBoard(0xE) Я сейчас пытаюсь преобразовать десятичные числа в шестнадцатеричные, но я могу получить только строки

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

Могу ли я возможно получите это 'e' в шестнадцатеричном формате, чтобы отправить его на доску, например sendToBoard(number) //number === e (in hex)

1 Ответ

1 голос
/ 20 апреля 2020

В Javascript числа реализованы с использованием 64-разрядного двоичного формата двойной точности . Таким образом, даже если вы представите их в шестнадцатеричном формате, они будут сохранены с помощью представления с плавающей запятой.

, если у вас есть число и вы хотите, чтобы функция 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);

Надеюсь, это поможет:)

...