2017-10-04 102 views
2

我正在开发一个Javascript应用程序,我需要实现64k的固定内存块。这块可以是任何像对象,数组,缓冲区我不知道是什么。这应该作为64k物理内存芯片。我可以解决和存储数据。地址将是16位,每个位置的数据是8位。我怎样才能实现它?你能推荐任何npm包吗?如何在Javascript中实现内存块?

+0

对于节点或浏览器? – robertklep

+0

对于浏览器.... – Siddharth

+1

这正是'new Uint8Array(64 * 1024)'所做的。 – Bergi

回答

4

我想大多数浏览器都支持时下Uint8Array

const buffer = new Uint8Array(65536); 

let index = 123; 
buffer[index] = 42; 
console.log(buffer[index]); 
0

什么用大小为2^16 * 8的阵列?

由于Javascript是动态类型的,你将不得不编写类型逻辑。所以如果你想在内存位置8放置一个char,你必须计算该char的8位二进制值,并将其输入到后面的8位。

所以插入时的“A”(二进制01100001)在第8位置,你的记忆是这样的,之前和之后:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... ] 

         0 1 2 3 4 5 6 7 
[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, ... ]