Manipulación de bits

Manipulación de bits

Recordemos que un entero puede escribirse en su forma decimal, binaria o hexadecimal:

13 (decimal) = 0b1101 = 0xd

> Las funciones binString y hexString pueden usarse para obtener la representación binaria y hexadecimal, respectivamente, de un entero.

El interés de saber manipular valores binarios es poder optimizar etapas en cálculos frecuentes, o manipular series de booleanos rápidamente.

Qué es un número binario

Un número binario puede representar a la vez un número y un array de valores booleanos. Como los enteros son de 64 bits, se pueden representar 64 valores booleanos en un solo entero. En lo que sigue, consideramos que un bit a 1 corresponde a un valor true, y un bit a 0 corresponde a false.

Operadores y funciones disponibles

Los operadores binarios de LeekScript son:

Algunas funciones dedicadas también facilitan la manipulación bit a bit: testBit, setBit, bitCount, bitLength, trailingZeros y leadingZeros.

Para manipular enteros de más de 64 bits, consulta los BigInteger.

Máscaras binarias

Las máscaras binarias se usan para recuperar el valor de bits o de grupos de bits de un número.

Recuperar el valor de un bit en el índice N

Para recuperar el valor en el índice N:

Recuperar el valor de N bits consecutivos

Para recuperar el valor de los N últimos bits:

Donde 0b111...111 es un número binario con N veces el dígito 1, es decir, equivalente a 2**N-1.