bit32

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Questa libreria fornisce funzioni per eseguire operazioni bitwise.

Limitazioni di numero

Questa libreria tratta i numeri come interi 32-bit non firmati; i numeri verranno convertiti in questo prima di essere utilizzati (vedi immagine sotto). I numeri con numeri decimali sono arrotondati al numero intero più vicino.

32-bit integer conversion (in hexadecimal)

Sommario

Funzioni

  • Restituisce un numero dopo che i suoi bit sono stati spostati aritmeticamente a destra da un determinato spostamento.

  • band(numbers : Tuple):number

    Restituisce il bitwise E di tutti i numeri forniti.

  • Ritorna la negazione bitwise di un numero specificato.

  • bor(numbers : Tuple):number

    Restituisce il bitwise OР di tutti i numeri forniti.

  • btest(numbers : Tuple):bool

    Restituisce un booleano che indica se il bitwise e dei suoi operanti sono diversi da zero.

  • bxor(numbers : Tuple):number

    Restituisce l'XOR bitwise di tutti i numeri forniti.

  • Restituisce il numero specificato con l'ordine dei bit scambiati.

  • Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito che inizia dalla bit più a sinistra (la più significativa).

  • Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito che inizia dal bit più a destra (meno significativo).

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

    Estrae un insieme di bit da un numero e restituiscili come un numero non firmato.

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

    Restituisci una copia di un numero con una gamma di bit sostituita da un valore specificato.

  • Restituisce un numero dopo che i suoi bit sono stati ruotati a sinistra per un dato numero di volte.

  • Restituisce un numero il cui bit sono stati spostati in modo logico a sinistra da un determinato spostamento.

  • Restituisce un numero dopo che i suoi bit sono stati rotolati a destra da un dato numero di volte.

  • Restituisce un numero il cui bit sono stati spostati logicamente a destra da un determinato spostamento.

Funzioni

arshift

Ritorna il numero x spostato disp bit a destra. Il numero disp può essere qualsiasi Integrorappresentabile. I negative displacementi spostano a sinistra.

Questa operazione di spostamento è chiamata spostamento aritmetico. I bit vuoti a sinistra sono riempiti con copie del bit superiore di x ; i bit vuoti a destra sono riempiti con zeri. In particolare, i spostamenti con valori assoluti più elevati di 31 risultano in zero o 0XXXFFFFFF (tutti i bit sono spostati fuori).

Parametri

Il numero cui i suoi bit saranno spostati.

disp: number

Il numero intero di bit per passare.

Restituzioni

band

Restituisce il bitwise E di tutti i numeri forniti.

Ogni bit è testato contro la seguente tabella di verità:


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

Parametri

numbers: Tuple

Restituzioni

bnot

Ritorna la negazione bitwise di x .

Negation of a provided number

Per qualsiasi numero x, l'identità seguente contiene:


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

Parametri

Restituzioni

Restituisce il bitwise OР di tutti i numeri forniti.

Ogni bit è testato contro la seguente tabella di verità:


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

Parametri

numbers: Tuple

Restituzioni

btest

Restituisce un segnale booleano se il bitwise e dei suoi operanti è diverso da zero.

Parametri

numbers: Tuple

Restituzioni

bxor

Restituisce l'XOR bitwise di tutti i numeri forniti.

Ogni bit è testato contro la seguente tabella di verità:


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

Parametri

numbers: Tuple

Restituzioni

byteswap

Restituisce il numero specificato con l'ordine dei bit scambiati.

Parametri

Restituzioni

countlz

Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito che inizia dalla bit più a sinistra (la più significativa). Ritorna 32 se il numero fornito è zero.

Parametri

Restituzioni

countrz

Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito che inizia dal bit più significativo a destra. Restituisce 32 se il numero fornito è zero.

Parametri

Restituzioni

extract

Ritorna il numero non firmato formato dai bit field a field + width - 1 da n . I bit sono numerati da 0 (meno importante) a 31 (più importante). Tutti i bit acceduti devono essere nella gamma [0, 31]. Il valore predefinito per 1> wide1> è 1.

Parametri

field: number
width: number
Valore predefinito: 1

Restituzioni

replace

Restituisce una copia di n con i bit field a field + width - 1 sostituiti dal valore 1> v1> . Vedi 4> Library.bit32.assign()4> per i dettagli su 7> field7> e 0> width0> .

Parametri

field: number
width: number
Valore predefinito: 1

Restituzioni

lrotate

Ritorna il numero x bit rotati a sinistra. Il numero disp può essere qualsiasi Integrorappresentabile. Per qualsiasi validi spostamenti, il seguente identificatore contiene:


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

In particolare, i negativi spostamenti di posizione ruotano a destra.

Parametri

disp: number

Restituzioni

lshift

Ritorna il numero x spostato disp bit a sinistra. Il numero disp può essere qualsiasi Integrorappresentabile. I negative spostamenti spostati a sinistra. In qualsiasi direzione, i bit vuoti sono riempiti con zeri. In particolare, i spostamenti con valori assoluti più di 31 risultano in zero (tutti i bit sono spostati fuori).

Number shifted 3 to the left

Per i positivi spostamenti, la seguente uguiglianza tiene conto:


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

Parametri

disp: number

Restituzioni

rrotate

Restituisce il numero x bit rotati a destra. Il numero disp può essere qualsiasi Integrorappresentabile.

Per qualsiasi spostamento valido, l'identità seguente contiene:


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

In particolare, i negativi spostamenti di spostamento ruotano a sinistra.

Parametri

disp: number

Restituzioni

rshift

Ritorna il numero x spostato disp bit a destra. Il numero disp può essere qualsiasi Integrorappresentabile. I negative spostamenti spostati a sinistra. In qualsiasi direzione, i bit vuoti sono riempiti con zeri. In particolare, i spostamenti con valori assoluti più di 31 risultano in zero (tutti i bit sono spostati fuori).

Number shifted 3 to the right

Per i positivi spostamenti, la seguente uguiglianza tiene conto:


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

Questa operazione di spostamento è chiamata spostamento logico.

Parametri

disp: number

Restituzioni