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

时间:2018-11-16 19:59:33

标签: node.js buffer fs

我正在尝试将现有的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

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

2 个答案:

答案 0 :(得分:0)

the documentation所述,缓冲区值是无符号的8位整数,即0到255之间的数字。

应该是:

fileData[2365] = 12
  

我知道是否要将ascii字符用十六进制表示,我可以使用这样的字符代码

JavaScript中的十六进制没有特殊的数据类型,charCodeAt返回一个整数。问题中的代码已经执行与上述相同的操作。

答案 1 :(得分:0)

通过将索引设置为0x [十六进制]来获得预期的结果