[JAVA] Marchandise (troncature) / calcul du reste par calcul de bits

Les opérations sur les bits sont proches des langues inférieures, elles sont donc rapides dans toutes les langues. Particulièrement utile pour diviser 2 à la puissance nième.

Général (JavaScript)

Commerce: OU opération 0 pour la solution de division (fraction) (Excès: utilisez l'opérateur%, pas l'opération de bit)

ex.17 ÷ 6 quotient et reste


q = (17/6)|0; //quotient= 2
r = 17%6 //reste= 5

Ce n'est pas si rapide car cela provoque des fractions au milieu, mais c'est plus léger que Math.floor.

Pour la division par 2 à la nième puissance (1, 2, 4, 8, 16 ...) (JavaScript, Python)

Commerce: décalage de n bits vers la gauche Extra: (2 ^ n) -1 opération AND

ex.Quotient 17/8 et reste


q = 17>>3; //quotient= 2
r = 17&7; //reste= 1

Au fait

Autour du binaire


//Le nombre d'octets requis pour stocker des données sur N bits
byteLength = 1 + ((N-1)>>3);
//Pour extraire le Nième bit du début de Uint8Array
bitN = uint8array[N>>3] & (1<<(N&7));

Recommended Posts

Marchandise (troncature) / calcul du reste par calcul de bits
Opération de bit
Opération logique / opération sur bit 0
[Calcul scientifique / technique par Python] Fonctionnement de base du tableau, numpy