以下代码尝试解析exe的内容,因此结果是一堆未知字符和字符串位:
var fs = require('fs');
fs.readFile( __dirname + '/test.exe', function (err, data) {
if (err) {
throw err;
}
console.log(data.toString());
});
但是如何获取输出1和0的字符串呢?我正在尝试生成机器代码。
答案 0 :(得分:1)
data
回调中的readFile
参数是一个缓冲区,您可以对其进行迭代以获取每个字节(即一个数字)并将其转换为如下所示的二进制表示形式:>
for (const byte of data.values()) {
console.log(byte.toString(2).padStart(8, '0'));
}
最后调用padStart()可使所有数字具有相同的长度
顺便说一句,如果您想解析一个小文件,此代码就可以了,但是,如果您想解析一个更大的文件(例如3Go),我建议您使用流,否则将运行内存不足的速度非常快:)