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 exécuter des opérations de manière binaire.

Limites de numéro

Cette bibliothèque traite les nombres comme des nombres 32 bits signés ; les nombres seront convertis en utilisant (voir image ci-dessous). Les nombres avec des nombres décimaux sont arrondis au nombre le plus proche.

32-bit integer conversion (in hexadecimal)

Résumé

Fonctions

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

  • band(numbers : Tuple):number

    Renvoie le bitwise ET de tous les numéros fournis.

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

  • bor(numbers : Tuple):number

    Renvoie le bitwise OU de tous les numéros fournis.

  • btest(numbers : Tuple):bool

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

  • bxor(numbers : Tuple):number

    Renvoie le XOR de tous les numéros fournis.

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

  • Renvoie le nombre de zéros consécutifs dans la représentation de 32 bits du nombre fourni à partir du bit le plus à gauche (le plus important).

  • Renvoie le nombre de zéros consécutifs dans la représentation de 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 renvoyez-les en tant que numéro non signé.

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

    Renvoie une copie d'un nombre avec une gamme de bits remplacée 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é déplacés logiquement à 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é déplacés logiquement à droite par un déplacement donné.

Fonctions

arshift

Renvoie le nombre x décalé de disp bits à droite. Le nombre disp peut être n'importe quel entierreprésentable. Les décalages négatifs se déplacent à gauche.

Cet opérateur de décalage est ce que l'on appelle le décalage arithmétique. Les bits vides à gauche sont remplis par des copies du plus haut bit de x ; les bits vides à droite sont remplis par des zéros. En particulier, les décalages avec des valeurs absolues supérieures à 31 entraînent un zéro ou 0XXXXXXXX (tous les bits d'origine sont décalés).

Paramètres

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

disp: number

Le nombre entier de bits à déplacer.

Retours

band

Renvoie le bitwise ET de tous les numéros fournis.

Chaque bouchée est testée contre la table de vérité suivante :


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

Paramètres

numbers: Tuple

Retours

bnot

Renvoie la négation de x .

Negation of a provided number

Pour tout nombre x, l'identité suivante contient :


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

Paramètres

Retours

Renvoie le bitwise OU de tous les numéros fournis.

Chaque bouchée est testée contre la table de vérité suivante :


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

Paramètres

numbers: Tuple

Retours

btest

Renvoie un signe de vérité si le bitwise et de ses opérateurs est différent de zéro.

Paramètres

numbers: Tuple

Retours

bxor

Renvoie le XOR de tous les numéros fournis.

Chaque bouchée est testée contre la table de vérité suivante :


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

Paramètres

numbers: Tuple

Retours

byteswap

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

Paramètres

Retours

countlz

Renvoie le nombre de zéros consécutifs dans la représentation de 32 bits du nombre fourni à partir du bit le plus à gauche (le plus important). 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 de 32 bits du nombre fourni à partir du bit le plus à droite (le moins important). Renvoie 32 si le nombre fourni est zéro.

Paramètres

Retours

extract

Renvoie le nombre signé formé par les bits field à field + width - 1 à partir de n . Les bits sont numérotés du plus bas (le moins significatif) au plus important (le plus significatif). Tous les bits accédés doivent être dans la tranche [0, 31]. La valeur par défaut pour 1> wide1> est 1.

Paramètres

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

Retours

replace

Renvoie une copie de n avec les bits field à field + width - 1 remplacés par la valeur 1> v1>. Voir 4> Library.bit32.assign()4> pour plus de détails sur 7> field7> et 0> 宽度0> .

Paramètres

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

Retours

lrotate

Retourne le nombre x rotaté disp bits à gauche. Le nombre disp peut être n'importe quel entierreprésentable. Pour tout déplacement valide, l'identifiant suivant contient :


assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))

En particular, les déplacements négatifs tournent à droite.

Paramètres

disp: number

Retours

lshift

Renvoie le nombre x décalé de disp bits à gauche. Le nombre disp peut être n'importe quel entierreprésentable. Les décalages négatifs se déplacent à droite. Dans n'importe quelle direction, les zéros se remplissent avec des zéros. En particulier, les décalages avec des valeurs absolues supérieures à 31 se règlent avec zéro (tous les bits sont décal

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 pivoté disp bits à droite. Le nombre disp peut être n'importe quel entier.

Pour tout déplacement valide, l'identité suivante contient :


assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))

En particular, les déplacements négatifs tournent à gauche.

Paramètres

disp: number

Retours

rshift

Retourne le nombre x décalé de disp bits à droite. Le nombre disp peut être n'importe quel entierreprésentable. Les décalages négatifs déplacent à gauche. Dans n'importe quelle direction, les zéros sont remplis par des zéros. En particulier, les décalages avec des valeurs absolues supérieures à 31 entraînent un zéro (tous les bits sont décalés).

Number shifted 3 to the right

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


assert(bit32.rshift(b, disp) == math.floor(b % 2^32 / 2^disp))

Cet opérateur de décalage est appelé décalage logique.

Paramètres

disp: number

Retours