bit32

Afficher les obsolètes

*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.

32-bit integer conversion (in hexadecimal)

Résumé

Fonctions

  • Renvoie un nombre après que ses bits aient été arithmétiquement déplacés à droite par un déplacement donné.

  • band(numbers : Tuple):number

    Retourne l'AND bitwise de tous les numéros fournis.

  • Renvoie la négation bitwise d'un nombre donné.

  • bor(numbers : Tuple):number

    Retourne l'OR bitwise de tous les numéros fournis.

  • btest(numbers : Tuple):boolean

    Renvoie un booléen décrivant si le bitwise et ses opérandes sont différents de zéro.

  • bxor(numbers : Tuple):number

    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).

  • extract(n : number,field : number,width : number):number

    Extrayez une gamme de bits à partir d'un nombre et retournez-les en tant que nombre non signé.

  • replace(n : number,v : number,field : number,width : number):number

    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

Le nombre dont les bits seront déplacés.

disp: number

Le nombre entier de bits à déplacer.

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
Bitwise AND of 3 numbers

Paramètres

numbers: Tuple

Retours

bnot

Retourne la négation en bits de x .

Negation of a provided number

Pour tout entier x, l'identité suivante tient :


assert(bit32.bnot(x) == (-1 - x) % 2^32)

Paramètres

Retours

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
Bitwise OR of 3 numbers

Paramètres

numbers: Tuple

Retours

btest

Renvoie un signal booléen indiquant si le bitwise et de ses opérandes est différent de zéro.

Paramètres

numbers: Tuple

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
Bitwise XOR of 3 numbers

Paramètres

numbers: Tuple

Retours

byteswap

Renvoie le nombre donné avec l'ordre des octets échangés.

Paramètres

Retours

countlz

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 32 si le nombre fourni est zéro.

Paramètres

Retours

countrz

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).Renvoie 32 si le nombre fourni est zéro.

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.

Paramètres

field: number
width: number
Valeur par défaut : 1

Retours

replace

Retourne une copie de avec les bits remplacés par la valeur .Voir bit32.extract() pour les détails sur field et width.

Paramètres

field: number
width: number
Valeur par défaut : 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.

Paramètres

disp: number

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).

Number shifted 3 to the left

Pour les déplacements positifs, l'égalité suivante s'applique :


assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)

Paramètres

disp: number

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.

Paramètres

disp: number

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).

Number shifted 3 to the right

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.

Paramètres

disp: number

Retours