bit32
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Cette bibliothèque fournit des fonctions pour effectuer des opérations binaires.
Limites de nombre
Cette bibliothèque traite les nombres comme des entiers de 32 bits non signés ; les nombres seront convertis en cela avant d'être utilisés (voir image ci-dessous).Les nombres avec des nombres décimaux sont arrondis au nombre entier le plus proche.

Résumé
Fonctions
Renvoie un nombre après que ses bits aient été arithmétiquement déplacés à droite par un déplacement donné.
Retourne l'AND bitwise de tous les numéros fournis.
Renvoie la négation bitwise d'un nombre donné.
Retourne l'OR bitwise de tous les numéros fournis.
Renvoie un booléen décrivant si le bitwise et ses opérandes sont différents de zéro.
Retourne l'XOR bitwise de tous les numéros fournis.
Renvoie le nombre donné avec l'ordre des octets échangés.
Renvoie le nombre de zéros consécutifs dans la représentation 32 bits du nombre fourni, à partir du bit le plus significatif à gauche.
Renvoie le nombre de zéros consécutifs dans la représentation 32 bits du nombre fourni à partir du bit le plus à droite (le moins significatif).
Extrayez une gamme de bits à partir d'un nombre et retournez-les en tant que nombre non signé.
Retourner une copie d'un nombre avec une gamme de bits remplacés par une valeur donnée.
Renvoie un nombre après que ses bits aient été tournés à gauche par un nombre donné de fois.
Renvoie un nombre dont les bits ont été logiquement déplacés à gauche par un déplacement donné.
Renvoie un nombre après que ses bits aient été tournés à droite par un nombre donné de fois.
Renvoie un nombre dont les bits ont été logiquement déplacés à droite par un déplacement donné.
Fonctions
arshift
Retourne le nombre x déplacé disp bits à droite.Le nombre disp peut être tout entier représentable.Les déplacements négatifs se déplacent à gauche.
Cette opération de changement est ce que l'on appelle un changement arithmétique.Les bits vacants à gauche sont remplis de copies du bit supérieur de x ; les bits vacants à droite sont remplis de zéros.En particulier, les déplacements avec des valeurs absolues supérieures à 31 entraînent zéro ou 0xFFFFFFFF (tous les bits originaux sont déplacés).
Paramètres
Retours
band
Retourne l'AND bitwise de tous les numéros fournis.
Chaque bit est testé contre la table de vérité suivante :
<th>B</th><th>Sortie</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>1</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>0</td></tr><tr><td>1</td><td>1</td><td>1</td></tr></tbody>
A |
---|

Paramètres
Retours
bor
Retourne l'OR bitwise de tous les numéros fournis.
Chaque bit est testé contre la table de vérité suivante :
<th>B</th><th>Sortie</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>1</td><td>1</td></tr></tbody>
A |
---|

Paramètres
Retours
bxor
Retourne l'XOR bitwise de tous les numéros fournis.
Chaque bit est testé contre la table de vérité suivante :
<th>B</th><th>Sortie</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>1</td><td>0</td></tr></tbody>
A |
---|

Paramètres
Retours
extract
Retourne le nombre non signé formé par les bits field à field + width - 1 à partir de n .Les bits sont numérotés de 0 (le moins significatif) à 31 (le plus significatif).Tous les bits accessibles doivent être dans la plage [0, 31].La valeur par défaut pour width est 1.
Retours
lrotate
Retourne le nombre x rotaté à gauche de disp bits.Le nombre disp peut être tout entier représentable.Pour tout déplacement valide, l'identité suivante est maintenue :
assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))
En particulier, les déplacements négatifs tournent à droite.
Retours
lshift
Retourne le nombre x déplacé à gauche de disp bits.Le nombre disp peut être tout entier représentable.Les déplacements négatifs se déplacent à droite.Dans n'importe quelle direction, les bits vacants sont remplis de zéros.En particulier, les déplacements avec des valeurs absolues supérieures à 31 entraînent zéro (tous les bits sont déplacés).

Pour les déplacements positifs, l'égalité suivante s'applique :
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
Retours
rrotate
Retourne le nombre x rotaté disp bits à la droite. Le nombre disp peut être tout entier représentable.
Pour tout déplacement valide, l'identité suivante est maintenue :
assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))
En particulier, les déplacements négatifs tournent à gauche.
Retours
rshift
Retourne le nombre x déplacé disp bits à droite.Le nombre disp peut être tout entier représentable.Les déplacements négatifs se déplacent à gauche.Dans n'importe quelle direction, les bits vacants sont remplis de zéros.En particulier, les déplacements avec des valeurs absolues supérieures à 31 entraînent zéro (tous les bits sont déplacés).

Pour les déplacements positifs, l'égalité suivante s'applique :
assert(bit32.rshift(b, disp) == (b % 2^32 / 2^disp) // 1)
Cette opération de changement est ce que l'on appelle le changement logique.