我需要使用 javascript 逐字节读取二进制文件。我在此站点中得到了以下代码,但它不起作用。我想我必须添加一些额外的 src 文件作为对它的引用。请帮我做。这里的代码...
var fs = require('fs');
var Buffer = require('buffer').Buffer;
var constants = require('constants');
fs.open("file.txt", 'r', function(status, fd) {
if (status) {
console.log(status.message);
return;
}
var buffer = new Buffer(100);
fs.read(fd, buffer, 0, 100, 0, function(err, num) {
console.log(buffer.toString('utf-8', 0, num));
});
});
Run Code Online (Sandbox Code Playgroud) 我正在关注Gameboy模拟的指南,在一段代码中我看到了以下内容:
while(true)
{
var op = MMU.rb(Z80._r.pc++); // Fetch instruction
Z80._map[op](); // Dispatch
Z80._r.pc &= 65535; // Mask PC to 16 bits
Z80._clock.m += Z80._r.m; // Add time to CPU clock
Z80._clock.t += Z80._r.t;
}
Run Code Online (Sandbox Code Playgroud)
如果pc是一个16位程序计数器寄存器并且65535是十六进制的0xFFFF,那么屏蔽16位值的目的是什么0xFFFF?据我所知,这什么都没做?或者它与符号位有关吗?
我最近了解了 C 中的严格别名并阅读了这篇文章
但我很困惑何时不想启用严格别名。我使用 GCC 开发嵌入式 C 应用程序,我发现许多项目都有-fno-strict-aliasing添加了发布版本的额外标志,但我不明白为什么他们不想启用严格别名以提高性能。有没有人有一个你不想在 C 中使用严格别名的好例子/情况?
另外,如果我们违反严格别名规则但告诉编译器不要进行任何严格别名优化,这是否意味着它不是未定义的行为?
谢谢