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

Sommario
Funzioni
Restituisce un numero dopo che i suoi bit sono stati spostati aritmeticamente a destra da un dato spostamento.
Restituisce l'AND bitwise di tutti i numeri forniti.
Restituisce la negazione bitwise di un numero dato.
Restituisce l'OR bitwise di tutti i numeri forniti.
Restituisce un booleano che descrive se il bitwise e dei suoi operandi è diverso da zero.
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.
Estrai una gamma di bit da un numero e restituiscili come numero non firmato.
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
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 |
---|

Parametri
Restituzioni
bor
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 |
---|

Parametri
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 |
---|

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

Per i spostamenti positivi, la seguente uguaglianza tiene:
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
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.
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).

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.