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 numeriche

Questa libreria tratta i numeri come interi a 32 bit non firmati; i numeri verranno convertiti in questo prima di essere utilizzati (vedi immagine qui sotto).I numeri con decimali vengono 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 dato spostamento.

  • band(numbers : Tuple):number

    Restituisce l'AND bitwise di tutti i numeri forniti.

  • Restituisce la negazione bitwise di un numero dato.

  • bor(numbers : Tuple):number

    Restituisce l'OR bitwise di tutti i numeri forniti.

  • btest(numbers : Tuple):boolean

    Restituisce un booleano che descrive se il bitwise e dei suoi operandi è diverso da zero.

  • bxor(numbers : Tuple):number

    Restituisce l'XOR bitwise di tutti i numeri forniti.

  • Restituisce il numero fornito con l'ordine dei bytes scambiati.

  • Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito, a partire dall'ultimo bit (più significativo).

  • Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito, a partire dall'ultimo bit più importante.

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

    Estrai una gamma di bit da un numero e restituiscili come numero non firmato.

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

    Restituisci una copia di un numero con una gamma di bit sostituiti da un valore dato.

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

  • Restituisce un numero i cui bit sono stati spostati logicamente a sinistra da un dato spostamento.

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

  • Restituisce un numero i cui bit sono stati spostati logicamente a destra da un dato spostamento.

Funzioni

arshift

Restituisce il numero x spostato a destra di disp bit.Il numero disp può essere qualsiasi Integrorappresentabile.I spostamenti negativi si spostano a sinistra.

Questa operazione di spostamento è ciò che si chiama spostamento aritmetico.I bit vuoti a sinistra sono riempiti con copie dell'bit superiore di x ; i bit vuoti a destra sono riempiti con zero.In particolare, i spostamenti con valori assoluti superiori a 31 danno come risultato zero o 0xFFFFFFFF (tutti i bit originali vengono spostati).

Parametri

Il numero il cui bit verrà spostato.

disp: number

Il numero intero di bit da spostare.

Restituzioni

band

Restituisce l'AND bitwise di tutti i numeri forniti.

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


<th>B</th>
<th>Uscita</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

Parametri

numbers: Tuple

Restituzioni

bnot

Restituisce la negazione bitwise di x .

Negation of a provided number

Per qualsiasi intero x, l'identità seguente mantiene:


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

Parametri

Restituzioni

Restituisce l'OR bitwise di tutti i numeri forniti.

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


<th>B</th>
<th>Uscita</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

Parametri

numbers: Tuple

Restituzioni

btest

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

Parametri

numbers: Tuple

Restituzioni

bxor

Restituisce l'XOR bitwise di tutti i numeri forniti.

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


<th>B</th>
<th>Uscita</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

Parametri

numbers: Tuple

Restituzioni

byteswap

Restituisce il numero fornito con l'ordine dei bytes scambiati.

Parametri

Restituzioni

countlz

Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito, a partire dall'ultimo bit (più significativo).Restituisce 32 se il numero fornito è zero.

Parametri

Restituzioni

countrz

Restituisce il numero di bit zero consecutivi nella rappresentazione a 32 bit del numero fornito, a partire dall'ultimo bit più importante.Restituisce 32 se il numero fornito è zero.

Parametri

Restituzioni

extract

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

Parametri

field: number
width: number
Valore predefinito: 1

Restituzioni

replace

Restituisce una copia di con i bit sostituiti dal valore .Vedi bit32.extract() per i dettagli su field e width.

Parametri

field: number
width: number
Valore predefinito: 1

Restituzioni

lrotate

Restituisce il numero x ruotato a sinistra di disp bit.Il numero disp può essere qualsiasi Integrorappresentabile.Per qualsiasi spostamento valido, l'identità seguente mantiene:


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

In particolare, i spostamenti negativi ruotano a destra.

Parametri

disp: number

Restituzioni

lshift

Restituisce il numero x spostato a sinistra di disp bit.Il numero disp può essere qualsiasi Integrorappresentabile.I spostamenti negativi si spostano a destra.In qualsiasi direzione, i bit vuoti sono riempiti con zero.In particolare, i spostamenti con valori assoluti superiori a 31 danno zero (tutti i bit vengono spostati fuori).

Number shifted 3 to the left

Per i spostamenti positivi, la seguente uguaglianza tiene:


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

Parametri

disp: number

Restituzioni

rrotate

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

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


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

In particolare, i spostamenti negativi ruotano a sinistra.

Parametri

disp: number

Restituzioni

rshift

Restituisce il numero x spostato a destra di disp bit.Il numero disp può essere qualsiasi Integrorappresentabile.I spostamenti negativi si spostano a sinistra.In qualsiasi direzione, i bit vuoti sono riempiti con zero.In particolare, i spostamenti con valori assoluti superiori a 31 danno zero (tutti i bit vengono spostati fuori).

Number shifted 3 to the right

Per i spostamenti positivi, la seguente uguaglianza tiene:


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

Questa operazione di spostamento è ciò che viene chiamato spostamento logico.

Parametri

disp: number

Restituzioni