Guía de Aritmética Binaria y Operaciones a Nivel de Bits (Bitwise)
Las operaciones aritméticas y a nivel de bits constituyen el núcleo matemático de las unidades aritmético-lógicas (ALU) de los procesadores, los compiladores de código, los motores de cifrado y los analizadores de tramas de red. A diferencia de las calculadoras tradicionales, operar directamente entre Binario (base 2), Octal (base 8), Decimal (base 10) y Hexadecimal (base 16) permite a los desarrolladores analizar registros de memoria, aplicar máscaras de bits y configurar flags de hardware.
1. Aritmética entre Bases Combinadas
En ingeniería de software de bajo nivel es común que los operandos procedan de diferentes sistemas numéricos (por ejemplo, sumar un desplazamiento decimal 16 a una dirección hexadecimal 0x00FF). Esta calculadora convierte cada operando a enteros nativos BigInt de precisión arbitraria, efectúa la operación y devuelve el resultado simultáneamente en las 4 bases.
- Suma (+): Suma ambos valores. Ejemplo:
1010(Bin = 10) +5(Dec) =15(Dec) /F(Hex). - Resta (-): Resta el operando B del operando A con soporte completo para signos negativos.
- Multiplicación (×): Producto exacto de enteros. Ejemplo:
100(Bin = 4) ×A(Hex = 10) =40(Dec) /28(Hex). - División Entera (÷) y Módulo (%): Devuelve el cociente entero y el resto exacto de la división.
2. Operadores Lógicos a Nivel de Bits (Bitwise)
- AND (
&): Devuelve1si y solo si ambos bits son1. Esencial para aplicar máscaras y consultar si un flag específico está activo. - OR (
|): Devuelve1si al menos uno de los dos bits es1. Utilizado habitualmente para encender opciones de configuración. - XOR (
^): Devuelve1si los bits son distintos. Fundamental en criptografía, verificación de paridad y conmutación de estados. - NOT (
~): Inversor unario bit a bit. Invierte todos los bits dentro de la longitud de palabra elegida (8, 16, 32 o 64 bits). Por ejemplo, en 8 bits,~0x0Fgenera0xF0(240). - Desplazamientos (
<</>>): El desplazamiento a la izquierda multiplica rápidamente enteros por potencias de 2 ($x \times 2^n$), mientras que el desplazamiento a la derecha divide por potencias de 2 ($x \div 2^n$).
3. Ancho de Palabra (Word Size) y Máscaras
En arquitectura de computadores, los registros están limitados por longitudes de palabra concretas: 8 bits (Byte, máx. 255), 16 bits (Word, máx. 65.535), 32 bits (DWord, máx. 4.294.967.295) y 64 bits (QWord). Seleccionar el ancho de palabra adecuado es imprescindible al aplicar la operación unaria NOT o simular el desbordamiento de registros en microcontroladores.