[PYTHON] Waren- (Kürzungs-) / Restberechnung durch Bitberechnung

Bitarithmetik ist in jeder Sprache schnell, da sie in der Nähe niedrigerer Sprachen liegt. Besonders nützlich, um 2 durch die n-te Potenz zu teilen.

Allgemein (JavaScript)

Handel: ODER Operation 0 für die Lösung der Teilung (Bruch) (Überschuss: Verwenden Sie den Operator%, nicht die Bitoperation.)

ex.17 ÷ 6 Quotient und Rest


q = (17/6)|0; //Quotient= 2
r = 17%6 //Rest= 5

Es ist nicht so schnell, weil es einen Bruchteil in der Mitte verursacht, aber es ist leichter als Math.floor.

Zur Division durch 2 zur n-ten Potenz (1, 2, 4, 8, 16 ...) (JavaScript, Python)

Handel: n-Bit-Verschiebung nach links Extra: (2 ^ n) -1 UND-Operation

ex.17/8 Quotient und Rest


q = 17>>3; //Quotient= 2
r = 17&7; //Rest= 1

Apropos

Um die Binärdatei


//Die Anzahl der Bytes, die zum Speichern von N-Bit-Daten erforderlich sind
byteLength = 1 + ((N-1)>>3);
//So extrahieren Sie das N-te Bit vom Anfang von Uint8Array
bitN = uint8array[N>>3] & (1<<(N&7));

Recommended Posts

Waren- (Kürzungs-) / Restberechnung durch Bitberechnung
Bitoperation
Logische Operation / Bitoperation 0
[Wissenschaftlich-technische Berechnung von Python] Grundlegende Operation des Arrays, numpy