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

Limitaciones de número

Esta biblioteca trata los números como enteros de 32 bits sin firmar; los números se convertirán a esto antes de usarlos (ver imagen a continuación).Los números con números decimales se redondean al número entero más cercano.

32-bit integer conversion (in hexadecimal)

Resumen

Funciones

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

  • band(numbers : Tuple):number

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

  • Devuelve la negación binaria de un número dado.

  • bor(numbers : Tuple):number

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

  • btest(numbers : Tuple):boolean

    Devuelve un booleano que describe si el bitwise y sus operandos son diferentes de cero.

  • bxor(numbers : Tuple):number

    Devuelve el XOR 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 cero consecutivos en la representación de 32 bits del número proporcionado, comenzando por el bit más significativo de la izquierda.

  • Devuelve el número de bits cero consecutivos en la representación de 32 bits del número proporcionado, comenzando por el bit más a la derecha (el 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 desplazado disp bits a la derecha.El número disp puede ser cualquier entero representable.Los desplazamientos negativos se desplazan a la izquierda.

Esta operación de cambio es lo que se llama cambio aritmético.Los bits vacantes a la izquierda se llenan con copias del bit superior de x ; los bits vacantes a la derecha se llenan con ceros.En particular, los desplazamientos con valores absolutos superiores a 31 resultan en cero o 0xFFFFFFFF (todos los bits originales se desplazan).

Parámetros

El número cuyos bits se desplazarán.

disp: number

El número entero de bits para desplazar.

Devuelve

band

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

Cada bit se prueba contra la siguiente tabla de verdad:


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

Parámetros

numbers: Tuple

Devuelve

bnot

Devuelve la negación binaria de x .

Negation of a provided number

Para cualquier entero x, la siguiente identidad se mantiene:


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

Parámetros

Devuelve

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

Cada bit se prueba contra la siguiente tabla de verdad:


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

Parámetros

numbers: Tuple

Devuelve

btest

Devuelve una señal binaria que indica si el bitwise y de sus operandos es diferente de cero.

Parámetros

numbers: Tuple

Devuelve

bxor

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

Cada bit se prueba contra la siguiente tabla de verdad:


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

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 cero consecutivos en la representación de 32 bits del número proporcionado, comenzando por el bit más significativo de la izquierda.Devuelve 32 si el número proporcionado es cero.

Parámetros

Devuelve

countrz

Devuelve el número de bits cero consecutivos en la representación de 32 bits del número proporcionado, comenzando por el bit más a la derecha (el menos significativo).Devuelve 32 si el número proporcionado es cero.

Parámetros

Devuelve

extract

Devuelve el número no firmado formado por los bits field a field + width - 1 desde n .Los bits se numeran desde 0 (menos significativos) hasta 31 (más significativos).Todos los bits accedidos deben estar en el rango [0, 31].El predeterminado para width es 1.

Parámetros

field: number
width: number
Valor predeterminado: 1

Devuelve

replace

Devuelve una copia de con los bits reemplazados por el valor .Vea bit32.extract() para detalles sobre field y width .

Parámetros

field: number
width: number
Valor predeterminado: 1

Devuelve

lrotate

Devuelve el número x girado a la izquierda disp bits.El número disp puede ser cualquier entero representable.Para cualquier desplazamiento válido, la siguiente identidad se mantiene:


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

En particular, los desplazamientos negativos giran a la derecha.

Parámetros

disp: number

Devuelve

lshift

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

Number shifted 3 to the left

Para desplazamientos positivos, se mantiene la siguiente igualdad:


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 de disp bits. El número disp puede ser cualquier enterorepresentable.

Para cualquier desplazamiento válido, la siguiente identidad se mantiene:


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

En particular, los desplazamientos negativos giran a la izquierda.

Parámetros

disp: number

Devuelve

rshift

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

Number shifted 3 to the right

Para desplazamientos positivos, se mantiene la siguiente igualdad:


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

Esta operación de cambio es lo que se llama cambio lógico.

Parámetros

disp: number

Devuelve