javascript / expert
Snippet
Bitweise Indexsuche über segmentierte Int32Array-Puffer
Bitweise Operationen über zusammenhängende binäre Int32Array-Puffer bieten bitmaskenbasiertes Filtern mit minimalem Overhead ohne Objektallokationen.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function findBitmaskMatches(arrayBuffer, mask) {const intArray = new Int32Array(arrayBuffer);const matches = [];for (let i = 0; i < intArray.length; i++) {if ((intArray[i] & mask) === mask) {matches.push(i);}}return matches;}const buffer = new Int32Array([0b1010, 0b1100, 0b1011, 0b0010]).buffer;const indices = findBitmaskMatches(buffer, 0b1010);
nodejs
Erklärung
1
function findBitmaskMatches(arrayBuffer, mask) {
Deklariert Funktion, die rohen ArrayBuffer und Integer-Bitmaskenfilter entgegennimmt.
2
const intArray = new Int32Array(arrayBuffer);
Erstellt eine vorzeichenbehaftete 32-Bit-Integer Typed View über dem rohen Puffer.
3
const matches = [];
Initialisiert Ergebnis-Array für übereinstimmende Puffer-Element-Indizes.
4
for (let i = 0; i < intArray.length; i++) {
Iteriert sequentiell im Speicher über die TypedArray-Elemente.
5
if ((intArray[i] & mask) === mask) {
Wendet bitweisen UND-Vergleich gegen die Zielbitmaske an.
6
matches.push(i);
Fügt übereinstimmenden Index der Ergebnisliste hinzu.
7
}
Schließt Bedingungsblock.
8
}
Schließt Schleifenblock des TypedArrays.
9
return matches;
Gibt die Sammlung passender Indizes zurück.
10
}
Schließt Funktionsdeklaration.
11
const buffer = new Int32Array([0b1010, 0b1100, 0b1011, 0b0010]).buffer;
Allokiert ArrayBuffer initialisiert mit binären Bit-Muster-Werten.
12
const indices = findBitmaskMatches(buffer, 0b1010);
Führt Bitmasken-Suche über den binären Puffer aus.