Calculadora de Suma y Resta Binaria

Calculadora de Suma y Resta Binaria

Calcula sumas y restas binarias con acarreos paso a paso, complemento a dos con signo, compuertas lógicas y conversión a hexadecimal en tiempo real.

Cargar ejemplo
Entrada de operandos y control de lógica
Ancho de palabra del registro8bits
Modelo de ALU:
Política ante desbordamiento:
Endianness (Orden de bytes):
Binario normalizado:1111 1111
Equivalente decimal: 255Equivalente hexadecimal: 0xFF
Conmutador interactivo de bits A:Haga clic en cualquier bit para alternar su estado (0 ↔ 1)
+Suma binaria (A + B)
Binario normalizado:0000 0001
Equivalente decimal: 1Equivalente hexadecimal: 0x01
Conmutador interactivo de bits B:Haga clic en cualquier bit para alternar su estado (0 ↔ 1)
Salida aritmética calculada8bits
Flujo binario (bloques de 4 bits)
0000 0000
Hexadecimal (0x)
0x00
Decimal sin signo
0
Decimal con signo (Complemento a 2)
0
Arquitectura de ALU y simulación de hardwareRipple-Carry Adder (RCA - Linear O(N))
Retardo de compuerta: 192 ps
Conteo de transistores: ~224 compuertas
Banderas de estado de la ALU de CPUEFLAGS / CCR
Bandera Zero (Z)HIGH (1)

Se activa cuando el resultado aritmético es exactamente igual a 0.

Bandera Negative (N)LOW (0)

Refleja de forma directa el bit de signo (MSB) en el ancho de palabra activo.

Bandera Carry (C)HIGH (1)

Acarreo sin signo generado más allá del bit más significativo (MSB).

Bandera Overflow con signo (V)LOW (0)

Desbordamiento en complemento a dos: operandos con signos iguales produjeron un resultado con signo opuesto.

Simulación interactiva de sumador con acarreo propagado
Acarreo de entrada (C_in)Suma resultante (S)
Etapa 7MSB (Bit más significativo)PGA=1B=0C=1S=0Etapa 6Bit 6PGA=1B=0C=1S=0Etapa 5Bit 5PGA=1B=0C=1S=0Etapa 4Bit 4PGA=1B=0C=1S=0Etapa 3Bit 3PGA=1B=0C=1S=0Etapa 2Bit 2PGA=1B=0C=1S=0Etapa 1Bit 1PGA=1B=0C=1S=0Etapa 0LSB (Bit menos significativo)PGA=1B=1C=0S=0C_out=1
Ancho de palabra activo8bits
Banderas ALU activas2 activas de 4 banderas
Latencia de ejecución192 ps (RCA)
Referencia técnica y guía de arquitectura

Calculadora de Suma y Resta Binaria — Guía de referencia

Calcula sumas y restas binarias paso a paso con bits de acarreo, valores con signo en complemento a dos, compuertas lógicas bit a bit y conversión hexadecimal en tiempo real.

Calculadora de Suma y Resta Binaria — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos
Calculadora de Suma y Resta Binaria — Guía de referencia — Arquitectura en memoria del lado del cliente y flujo de datos

Parámetros clave y controles

Operando A (Sumando / Minuendo)Flujo de bits binarios [0-1]

Cadena binaria de entrada principal. Admite longitudes de bit arbitrarias, prefijos 0b y delimitadores de nibbles. En modo suma, actúa como el primer sumando; en modo resta, representa el minuendo del cual se sustrae el operando B.

Por defecto: 10110100
Operando B (Sumando / Sustraendo)Flujo de bits binarios [0-1]

Cadena binaria de entrada secundaria. En modo suma, representa el segundo sumando que se añade al operando A; en modo resta, representa el sustraendo invertido e incrementado mediante aritmética de complemento a dos.

Por defecto: 01001101
Ancho de palabra del registro (Profundidad de bits)Capacidad del registro hardware (4, 8, 16, 32, 64 bits, Sin límite)

Límite del registro hardware que define el truncamiento por ancho fijo de bits, la posición del bit de signo (MSB) y el rango sin signo [0, 2^N - 1] frente al rango con signo [-2^(N-1), 2^(N-1) - 1]. Un registro de 8 bits abarca de 0 a 255 sin signo, o de -128 a +127 con signo.

Por defecto: 8-bit
Modo de operación aritméticaSelector de operación de la ALU (Suma / Resta)

Configura la operación de la unidad aritmético lógica (ALU): suma binaria estándar con o sin signo (A + B + C_in) o resta hardware mediante complemento a dos (A + (~B) + 1).

Por defecto: add
Acarreo de entrada inicial (C_in)Estado de acarreo de un solo bit (0 o 1)

Bit de acarreo inicial suministrado al índice de bit 0 (bit menos significativo o LSB). Por defecto es 0 para sumas independientes; establézcalo en 1 al encadenar sumas de múltiples palabras (ADC) o al completar la negación en complemento a dos.

Por defecto: 0
Estándar de representación numéricaCodificación de signo entero (Sin signo / Con signo en complemento a dos)

Controla si el bit más significativo (MSB) representa una magnitud estándar positiva de potencia de dos (2^(N-1)) o un peso de signo negativo (-2^(N-1)) en notación con signo de complemento a dos.

Por defecto: unsigned

Consejos profesionales y mejores prácticas

Detección instantánea de desbordamiento con signo mediante XOR en los acarreos superiores

En la aritmética de complemento a dos, se produce un desbordamiento por hardware (overflow) en la CPU si y solo si el acarreo entrante al bit más significativo difiere del acarreo saliente de dicho bit: V = C_msb ^ C_msb_minus_1. Esta verificación mediante una única compuerta lógica diagnostica al instante cuándo la suma de dos números positivos produce un resultado negativo erróneo, o cuándo la suma de dos números negativos produce un valor positivo.

La resta en complemento a dos descarta el bit de acarreo final saliente

Al realizar una resta binaria mediante complemento a dos A - B = A + (~B + 1), si el resultado es positivo o cero, se genera un acarreo final saliente (C_out) de 1 (lo que indica que no se requirió un préstamo o borrow sin signo). Los microprocesadores modernos (como x86 y ARM) invierten o interpretan este acarreo saliente como una bandera de préstamo invertida (B = ~C). No confunda este acarreo final con un desbordamiento aritmético.

Retardo de propagación: sumadores con acarreo anticipado frente a acarreo en cascada

En los sumadores de acarreo en cascada (Ripple Carry Adders o RCA), los bits de acarreo se propagan secuencialmente a través de N sumadores completos, lo que genera un retardo de compuerta O(N) que ralentiza las ALU de alta velocidad. Los procesadores industriales emplean sumadores con acarreo anticipado (Carry-Lookahead Adders o CLA), los cuales calculan en paralelo las señales de Generación (G_i = A_i & B_i) y Propagación (P_i = A_i ^ B_i) en bloques de 4 bits, reduciendo el retardo de evaluación del acarreo a O(log N).

Atención al rango dinámico negativo asimétrico en complemento a dos

En un sistema con signo de N bits en complemento a dos, el rango negativo alcanza hasta -2^(N-1), mientras que el rango positivo solo llega a +2^(N-1) - 1. Por ejemplo, en un registro de 8 bits, el rango abarca de -128 a +127. Si intenta negar -128 (calculando 0 - (-128)), el resultado vuelve a ser -128 debido a que +128 no se puede representar en 8 bits, lo que desencadena una excepción por desbordamiento de hardware no controlada.

Problemas comunes y soluciones

⚠️La suma de dos números binarios positivos con signo produce un valor negativo inesperado

Esto sucede cuando la suma excede el valor positivo máximo representable en el ancho de palabra seleccionado (por ejemplo, +120 + +15 = +135, el cual supera el límite con signo de 8 bits de +127). El octavo bit pasa de 0 a 1, lo que hace que la CPU lo interprete como un número negativo (-121) en complemento a dos. Este es un clásico desbordamiento de enteros con signo (signed integer overflow). Para solucionarlo, verifique la bandera de desbordamiento (Overflow Flag, V=1) o amplíe el registro de 8 bits a 16 bits.

⚠️Las cadenas binarias de entrada contienen caracteres no binarios, espacios o prefijos

Las notaciones de base como '0b1011', fragmentos hexadecimales ('0x1A'), comas o espacios irregulares interfieren con el análisis sintáctico bit a bit. El sanitizador de entrada elimina automáticamente los prefijos '0b'/'0B' y normaliza los espacios en blanco. Si se ingresan caracteres distintos de 0 y 1, el motor resalta las posiciones no válidas con un distintivo rojo de validación y pausa el cálculo hasta que se proporcionen dígitos binarios correctos.

⚠️La longitud de bits del resultado supera el tamaño de registro seleccionado (Wraparound sin signo)

Cuando la suma de dos números sin signo de N bits es igual o superior a 2^N (por ejemplo, 255 + 1 = 256 en un byte de 8 bits), se produce un bit de acarreo saliente adicional (el bit N+1). En un registro de hardware de ancho fijo, este bit no cabe y se almacena en la bandera de acarreo de la CPU (Carry Flag, C=1), mientras que el valor del registro se reinicia cíclicamente a 0 (wraparound). Para conservar la suma completa de 9 bits, cambie el selector de ancho de palabra a 16 bits o a 'Sin límite'.

⚠️La suma manual con lápiz y papel de los acarreos no coincide con el cálculo decimal manual

Compruebe que los bits de acarreo se estén propagando a la columna izquierda adyacente correcta (índice i+1). En la suma binaria, 1 + 1 = 10 (suma 0, acarreo 1), y 1 + 1 + 1 (incluyendo el acarreo entrante) = 11 (suma 1, acarreo 1). Consulte la pestaña 'Cuadrícula de acarreo paso a paso estilo lápiz y papel', la cual resalta la fila de acarreo activo (C_in) directamente encima de cada columna de bits para identificar con precisión dónde divergió la aritmética manual.

Preguntas frecuentes (FAQ)

¿Cómo sumar dos números binarios paso a paso?▼

Para sumar dos números binarios paso a paso, alinee ambos números a la derecha y sume cada columna de derecha a izquierda aplicando cuatro reglas básicas: 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, y 1 + 1 = 0 con un acarreo de 1 hacia la columna siguiente. Si una columna recibe un bit de acarreo previo de 1, la operación 1 + 1 + 1 es igual a 1 con un acarreo de 1. Anote el bit de suma debajo de la columna y escriba el bit de acarreo justo encima de la columna situada a la izquierda, repitiendo el proceso hasta resolver todos los bits y los acarreos finales.

¿Cómo funciona la resta en complemento a dos mediante suma binaria?▼

La resta en complemento a dos transforma la resta en una suma mediante la identidad algebraica A - B = A + (~B + 1). Primero, invierta todos los bits del sustraendo B (cambiando los 0 por 1 y los 1 por 0 para obtener el complemento a uno). Segundo, sume 1 a este valor invertido para formar el complemento a dos. Tercero, sume este resultado directamente a A mediante una suma binaria estándar y descarte el bit de acarreo saliente final. Por ejemplo, 7 (0111) - 3 (0011) se convierte en 0111 + 1101 = 10100; al descartar el quinto bit se obtiene 0100 (4 en decimal).

¿Cuál es la diferencia entre la bandera de acarreo (Carry Flag) y la bandera de desbordamiento (Overflow Flag)?▼

La bandera de acarreo (Carry Flag o C) detecta el desbordamiento en aritmética sin signo cuando un cálculo excede la capacidad máxima disponible (2^N - 1), mientras que la bandera de desbordamiento (Overflow Flag o V) detecta errores en aritmética con signo en complemento a dos. Por ejemplo, en un registro de 8 bits (rango de 0 a 255 sin signo, y de -128 a +127 con signo), 255 + 1 genera un acarreo (C=1, desbordamiento sin signo) pero no un desbordamiento con signo. Por el contrario, +64 + +65 = +129 activa la bandera de desbordamiento (V=1) porque el resultado supera +127 y se convierte erróneamente en -127 por desbordamiento de signo, mientras que la bandera de acarreo permanece en 0.

¿Por qué 127 + 1 es igual a -128 en aritmética binaria de 8 bits con signo?▼

En la representación con signo en complemento a dos de 8 bits, el bit más significativo (bit 7) posee un peso negativo de -128 (-2^7). El valor decimal +127 se representa en binario como 01111111. Al sumarle 1, se obtiene 10000000, lo que establece el bit de signo en 1 mientras que todos los bits de magnitud inferior pasan a 0. Al calcular el valor con signo resulta (-128 * 1) + 0 = -128. Dado que un entero con signo de 8 bits tiene un rango asimétrico de -128 a +127, incrementar el valor positivo máximo causa un ciclo de desbordamiento (wraparound) hacia el valor negativo más bajo.

¿Cuál es la diferencia entre un circuito semisumador (Half Adder) y un sumador completo (Full Adder)?▼

Un semisumador (Half Adder) calcula la suma de dos entradas de un solo bit (A y B) generando una salida de suma (S = A XOR B) y una salida de acarreo (C = A AND B), pero no puede recibir un acarreo procedente de una columna previa. En cambio, un sumador completo (Full Adder) procesa tres entradas de 1 bit: A, B y un acarreo entrante (C_in). Genera una suma (S = A XOR B XOR C_in) y un acarreo saliente (C_out = (A AND B) OR (C_in AND (A XOR B))), lo que permite encadenar varios sumadores completos para calcular operaciones binarias de múltiples bits.

¿Cómo calcular el complemento a dos de un número binario negativo?▼

Para obtener el complemento a dos de un número binario, invierta cada bit de 0 a 1 y de 1 a 0 (obteniendo el complemento a uno) y luego sume 1 al bit menos significativo (LSB). Un método mental directo consiste en escanear el número binario de derecha a izquierda: mantenga inalterados todos los ceros iniciales y el primer 1, e invierta todos los bits restantes situados a la izquierda de ese primer 1. Por ejemplo, para negar +6 (00000110), al recorrer de derecha a izquierda se conserva el '10' inferior y se invierten los bits superiores a '111110', resultando 11111010 (-6 en formato con signo de 8 bits).

Herramientas y utilidades relacionadas

Todas las herramientas →