NodeJS,我如何将整数作为十六进制输入到缓冲区



我正在寻求将现有的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);

即使(12(.toString(16(评估为C ,也会导致0

如何将整数转换为缓冲区可接受的值?

正如文档所解释的,缓冲区值是无符号的8位整数,即0到255之间的数字。

应该是:

fileData[2365] = 12

我知道如果我想把ascii字符作为十六进制,我可以使用字符代码,比如这个

JavaScript中没有十六进制的特殊数据类型,charCodeAt返回一个整数。问题中的代码已经做了与上面相同的事情。

通过将索引设置为0x[十六进制]来实现所需结果

最新更新