bit32

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Esta biblioteca proporciona funciones para realizar operaciones de manera básica.

Límites de Número

Esta biblioteca trata los números como números enteros de 32 bits; los números se convertirán en esto antes de ser usados (ver imagen abajo). Los números con números decimales se redondean al número más cercano.

32-bit integer conversion (in hexadecimal)

Resumen

Funciones

  • Devuelve un número después de que sus bits se hayan movido aritméticamente a la derecha por un desplazamiento dado.

  • band(numbers : Tuple):number

    Devuelve el bitwise Y de todos los números proporcionados.

  • Regresa la negación de la manera bitwise de un número dado.

  • bor(numbers : Tuple):number

    Devuelve el bitwise O de todos los números proporcionados.

  • btest(numbers : Tuple):bool

    Regresa un valor deBooleano que describe si el bitwise y sus operadores son diferentes de cero.

  • bxor(numbers : Tuple):number

    Devuelve el XOR de bitwise de todos los números proporcionados.

  • Devuelve el número dado con el orden de los bytes intercambiados.

  • Devuelve el número de bits de cero consecutivos en la representación de 32 bits del número proporcionado que comienza con el último bit (bit más significativo).

  • Devuelve el número de bits de cero secuenciales en la representación de 32 bits del número proporcionado que comienza con el último bit (menos significativo).

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

    Extrae un rango de bits de un número y devuélvelos como un número sin firmar.

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

    Devuelve una copia de un número con un rango de bits reemplazados por un valor dado.

  • Devuelve un número después de que sus bits se hayan girado a la izquierda por un número dado de veces.

  • Devuelve un número cuyos bits se han desplazado lógicamente a la izquierda por un desplazamiento dado.

  • Devuelve un número después de que sus bits se hayan girado a la derecha por un número dado de veces.

  • Devuelve un número cuyos bits se han desplazado lógicamente a la derecha por un desplazamiento dado.

Funciones

arshift

Devuelve el número x Shifted disp bits a la derecha. El número disp puede ser cualquier enterorepresentable. Los desplazamientos negativos se desplazan a la izquierda.

Esta operación deShift es lo que se llama arithmetic shift. Los espacios vacíos a la izquierda están llenos de copias del espacio de memoria superior; los espacios vacíos a la derecha están llenos de cero. En particular, los desplazamientos con valores absolutos mayores que 31 resultan en cero o 0XXXXXXXX (todos los espacios originales se desplazan fuera).

Parámetros

El número cuyos bits se moverán.

disp: number

El número entero de bits para cambiar.

Devuelve

band

Devuelve el bitwise Y de todos los números proporcionados.

Cada bocado se prueba contra la siguiente tabla de verdad:


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

Parámetros

numbers: Tuple

Devuelve

bnot

Regresa la negación de bitwise de x .

Negation of a provided number

Para cualquier número x, la siguiente identificación contiene:


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

Parámetros

Devuelve

Devuelve el bitwise O de todos los números proporcionados.

Cada bocado se prueba contra la siguiente tabla de verdad:


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

Parámetros

numbers: Tuple

Devuelve

btest

Devuelve un valor deBooleano para señalar si el bitwise y de sus operadores es diferente de cero.

Parámetros

numbers: Tuple

Devuelve

bxor

Devuelve el XOR de bitwise de todos los números proporcionados.

Cada bocado se prueba contra la siguiente tabla de verdad:


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

Parámetros

numbers: Tuple

Devuelve

byteswap

Devuelve el número dado con el orden de los bytes intercambiados.

Parámetros

Devuelve

countlz

Devuelve el número de bits de cero consecutivos en la representación de 32 bits del número proporcionado que comienza con el último bit (el más significativo). Devuelve 32 si el número proporcionado es cero.

Parámetros

Devuelve

countrz

Devuelve el número de bits de cero consecutivos en la representación de 32 bits del número proporcionado que comienza con el último (menos significativo) bit. Devuelve 32 si el número proporcionado es cero.

Parámetros

Devuelve

extract

Devuelve el número firmado por los bits field a field + width - 1 de n . Los bits se cuentan desde 0 (menos significativo) hasta 31 (más significativo). Todos los bits accedidos deben estar en el rango [0, 31]. La predeterminada para 1> wide1> es 1.

Parámetros

field: number
width: number
Valor predeterminado: 1

Devuelve

replace

Regresa una copia de n con los bits field a field + width - 1 reemplazados por el valor 1> v1> . Vea 4> Library.bit32.assign()4> para obtener detalles sobre 7> field7> y 0> width0> .

Parámetros

field: number
width: number
Valor predeterminado: 1

Devuelve

lrotate

Devuelve el número x girado disp bits a la izquierda. El número disp puede ser cualquier enterorepresentable. Para cualquier válido desplazamiento, la siguiente identificación contiene lo siguiente:


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

En particular, los desplazamientos negativos se giran a la derecha.

Parámetros

disp: number

Devuelve

lshift

Devuelve el número x Shifted 5 bits a la izquierda. El número disp puede ser cualquier enterorepresentable. Los desplazamientos negativos se desplazan a la derecha. En cualquier dirección, los bits vacíos se llenan con cero. En particular, los desplazamientos con valores absolutos mayores que 31 resultan en cero (todos los bits se desplazan fuera).

Number shifted 3 to the left

Para los desplazamientos positivos, la siguiente igualdad se mantiene:


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

Parámetros

disp: number

Devuelve

rrotate

Devuelve el número x girado a la derecha. El número disp puede ser cualquier enterorepresentable.

Para cualquier desplazamiento válido, la siguiente identificación contiene:


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

En particular, los desplazamientos negativos se giran a la izquierda.

Parámetros

disp: number

Devuelve

rshift

Devuelve el número x Shifted disp bits a la derecha. El número disp puede ser cualquier enterorepresentable. Los desplazamientos negativos se desplazan a la izquierda. En cualquier dirección, los bits vacíos se llenan con cero. En particular, los desplazamientos con valores absolutos mayores que 31 resultan en cero (todos los bits se desplazan fuera).

Number shifted 3 to the right

Para los desplazamientos positivos, la siguiente igualdad se mantiene:


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

Esta operación de cambio de velocidad se llama cambio de velocidad lógico.

Parámetros

disp: number

Devuelve