我正在为 nodejs 开发一个 C++-Addon,它采用 nodejs Buffer 对象并对其进行一些二进制操作。我目前的问题是关于指针背后的数据:
JavaScript 环境:
var buf = new Buffer([0x00, 0x7e, 0xff, 0xff]);
C++ 后端代码
int length = node::Buffer::Length(chunk);
char* head = node::Buffer::Data(chunk);
/* for debugging */
for (int i = 0; i < length; i++) {
std::cout << hex << (int) head[i] << "\n";
}
/* outputs: 0x00 0x7e 0xffffffff 0xffffffff */
为什么指针将最后两个字节解释为 0xffffffff 而不是 0xff?我该如何解决?