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

Resumen
Funciones
Devuelve un número después de que sus bits se hayan desplazado aritméticamente a la derecha por un desplazamiento dado.
Devuelve el AND bitwise de todos los números proporcionados.
Devuelve la negación binaria de un número dado.
Devuelve el OR bitwise de todos los números proporcionados.
Devuelve un booleano que describe si el bitwise y sus operandos son diferentes de cero.
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).
Extrae un rango de bits de un número y devuélvelos como un número sin firmar.
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
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 |
---|

Parámetros
Devuelve
bor
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 |
---|

Parámetros
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 |
---|

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

Para desplazamientos positivos, se mantiene la siguiente igualdad:
assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)
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.
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).

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.