bit32

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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)

Resumo

Funções

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

Funções

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.

Devolução

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

Devolução

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

Devolução

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

Devolução

btest

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

Parâmetros

numbers: Tuple

Devolução

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

Devolução

byteswap

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

Parâmetros

Devolução

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

Devolução

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

Devolução

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 Padrão: 1

Devolução

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 Padrão: 1

Devolução

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

Devolução

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

Devolução

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

Devolução

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

Devolução