gpt4 book ai didi

javascript - 纯 JavaScript 二进制操作

转载 作者:行者123 更新时间:2023-11-30 05:46:33 28 4
gpt4 key购买 nike

作为个人项目,我正在用 JavaScript(基于 HTML5)编写一个 6502 模拟器。我正在从我用 C 语言创建的前身移植它的一些部分。要加载文件(在我的例子中是 ROM),我可以使用这个 C 代码:

unsigned char* buffer = calloc(1, 4096);
FILE* file = fopen("xyz", "rb");
fread(buffer, 1, 4096, file);
fclose(file);

并像这样访问它:

char firstChar = buffer[0];
short nextShort = (buffer[2] << 8) | buffer[1];
free(buffer);

现在,我需要能够将其移植到 JavaScript。对于输入,我可以使用文件输入做这样的事情:

var file = document.getElementById("picker").files[0];
var reader = new FileReader();
reader.readAsDataURL(file);

从这里开始,我将 reader.result 作为文件的一个巨大的 base64 编码。我需要一种方法来访问二进制文件,就像我在开头的 C 示例中所做的那样,我可以在其中简单地获取值(或使用简单的按位运算)

我猜最可行的解决方案是一个 0-255 值数组,但我只需要访问权限,不管如何。

最佳答案

@bfavaretto 为我指明了正确的方向

var file = document.getElementById("picker").files[0];
var reader = new FileReader();
reader.readAsArrayBuffer(file);
var buffer = new Uint8Array(reader.result);

然后可以将其作为第一个字节的 buffer[0] 进行访问。

关于javascript - 纯 JavaScript 二进制操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642001/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com