2017-10-04 103 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, ... ]