我正在尝试将现有的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
如何将整数转换为可接受的缓冲区值?
答案 0 :(得分:0)
如the documentation所述,缓冲区值是无符号的8位整数,即0到255之间的数字。
应该是:
fileData[2365] = 12
我知道是否要将ascii字符用十六进制表示,我可以使用这样的字符代码
JavaScript中的十六进制没有特殊的数据类型,charCodeAt
返回一个整数。问题中的代码已经执行与上述相同的操作。
答案 1 :(得分:0)
通过将索引设置为0x [十六进制]来获得预期的结果