NodeJS, как мне ввести целое число в шестнадцатеричном виде в буфер - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь открыть существующий HEX-файл в буфер и внести изменения в его содержимое, я создаю буфер следующим образом:

const fs = require('fs');
var fileData = fs.readFileSync('./server/recipeTemplate/GemTwin.REL');

и знаю, хочу ли я поместить символы ascii в шестнадцатеричный форматв я могу использовать коды символов, такие как это:

var recipeName = req.body.name
var recipeIndex = 2343;
for (var i = 0; i < recipeName.length; i++) {
    fileData[recipeIndex+i] = recipeName.charCodeAt(i);
}

вопрос в том, как мне сделать это для целого числа,

я безуспешно пробовал следующее

fileData[2365] = (12).toString(16);

, что привело к 0, хотя (12) .toString (16) оценивается как C

Как получить целое число в приемлемое значение для буфера?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Удалось добиться желаемых результатов, установив индекс, равный 0x [шестнадцатеричный]

0 голосов
/ 17 ноября 2018

Как указано в документации , значения буфера представляют собой 8-разрядные целые числа без знака, т. Е. Числа от 0 до 255.

Должно быть:

fileData[2365] = 12

и я знаю, что если я хочу поместить символы ascii в шестнадцатеричное значение, я могу использовать такие коды символов, как этот

В JavaScript нет специального типа данных для шестнадцатеричного типа, charCodeAt возвращает целое число.Код в вопросе уже делает то же самое, что и выше.

...