【发布时间】:2021-10-30 01:29:55
【问题描述】:
我正在使用 Node JS 和 Express.js 开发我的 Web 服务器。我需要从二进制字符串开始在缓冲区中插入十六进制值。我的代码是这样的:
var buffer = fs.readFileSync("myBINfile.dat");
setValue(buffer, 4);
function setValue(buffer, i) {
var value1 = parseInt(buffer[i].toString(16), 16).toString(2).toString()
value1 = "0" + value1.substring(1, value1.length);
var hex = parseInt(value1, 2).toString(16);
console.log(hex); // print a8 (correct)
buffer[i] = hex;
console.log(buffer[i]); // print 0 (why?)
}
缓冲区包含一个十六进制文件。 value1 被正确读取。如何解决这个问题?
谢谢
【问题讨论】:
-
“Hex Buffer 和
i是预先定义的,它们是有效的。” - 你能证明吗?因为否则,这段代码很好,并且测试它按预期工作。 -
我更新了帖子。感谢您的帮助
-
您确定这是您的最新代码吗? (注意你的评论说
// print a8 (correct),但是这个不能将a8打印为value1 = "0" + value1.substring(1, value1.length);前缀任何值都会带有0) -
我更新错了。这似乎是一个简单的操作,但有些东西不起作用
标签: node.js express binary hex buffer