> ## Documentation Index
> Fetch the complete documentation index at: https://apuntes.simulab.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Sumador binario: semisumador, sumador completo y desbordamiento

> Cómo suma un circuito digital: suma binaria con acarreo, semisumador, sumador completo, sumador de n bits con propagación del acarreo, resta en complemento a 2 y desbordamiento.

<Card title="Abrir el simulador" icon="flask" href="https://simulab.es/electronica/sumador-binario">
  Suma y resta bit a bit con sumadores completos y el acarreo propagándose.
</Card>

Dentro de cada procesador hay un circuito que suma. Funciona exactamente como sumamos a mano en el colegio: columna a columna, de derecha a izquierda, **llevándose una** cuando hace falta. Solo que en binario, y con unas pocas puertas lógicas por bit.

## Lo que vas a aprender

* La suma binaria con acarreo.
* El semisumador y el sumador completo, con sus expresiones lógicas.
* Cómo se encadenan sumadores para sumar números de n bits.
* Cómo se resta con el mismo circuito, usando el complemento a 2.
* Qué es el desbordamiento y cómo se detecta.

## Cómo se usa el simulador

* Elige **Suma** o **Resta** y **4** u **8 bits**.
* Pulsa los bits de **A** y **B** para cambiarlos, o usa **🎲 Números al azar**.
* **▶ Propagar el acarreo** anima cómo viaja el acarreo de un bit al siguiente.
* Se muestran A, B y el resultado en decimal **sin signo** y, entre paréntesis, **con signo** (complemento a 2).
* Abajo, el **sumador completo** de un bit con su tabla de verdad y la explicación del desbordamiento.

## Fundamentos teóricos

### Suma binaria

| a | b | suma | acarreo |
| - | - | - | - |
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | **1** |

$1 + 1 = 10_2$: se escribe 0 y "me llevo 1".

### Semisumador

Suma dos bits sin acarreo de entrada:

$$
S = a \oplus b \qquad C = a \cdot b
$$

### Sumador completo

Suma dos bits **más el acarreo** que llega de la columna anterior:

$$
S = a \oplus b \oplus c_{in} \qquad c_{out} = a\,b + c_{in}\,(a \oplus b)
$$

### Sumador de n bits

Se encadenan $n$ sumadores completos: el $c_{out}$ de cada uno es el $c_{in}$ del siguiente. Es el **sumador con propagación del acarreo** (*ripple carry*). Es sencillo, pero lento: el último bit tiene que esperar a que el acarreo cruce todos los anteriores. Los procesadores usan sumadores con **acarreo anticipado** para ir más rápido.

### Resta con complemento a 2

$$
A - B = A + \overline{B} + 1
$$

Se invierten los bits de B y se pone $c_{in} = 1$ en el primer sumador. El **mismo circuito** sirve para sumar y restar.

### Desbordamiento

El resultado **no cabe** en los bits disponibles:

* **Sin signo**: hay un acarreo final (el que sale del último bit).
* **Con signo**: los acarreos que **entran y salen del bit de signo son distintos**. Ocurre al sumar dos positivos y obtener un negativo, o dos negativos y obtener un positivo.

## Ejemplos resueltos

<AccordionGroup>
  <Accordion title="Ejemplo 1 · 6 + 7 en 4 bits" defaultOpen>
    $0110 + 0111$: bit 0: $0 + 1 = 1$; bit 1: $1 + 1 = 0$, llevo 1; bit 2: $1 + 1 + 1 = 1$, llevo 1; bit 3: $0 + 0 + 1 = 1$.

    Resultado: $1101 = 13$ sin signo. **Con signo hay desbordamiento**: el rango es de −8 a 7 y se leería −3.
  </Accordion>

  <Accordion title="Ejemplo 2 · 107 + 54 en 8 bits">
    Sin signo: 161, cabe (máximo 255). Con signo: el rango es de −128 a 127, así que desborda y se lee −95.
  </Accordion>

  <Accordion title="Ejemplo 3 · Resta 7 − 5 en 4 bits">
    $0111 + \overline{0101} + 1 = 0111 + 1010 + 1 = 1\,0010$. Se descarta el acarreo final: $0010 = 2$.
  </Accordion>
</AccordionGroup>

## Experimenta con el simulador

<Steps>
  <Step title="Propagación">
    Pon A = 0111 1111 y B = 0000 0001 y anima el acarreo. ¿Cuántos sumadores atraviesa?
  </Step>

  <Step title="Desbordamiento">
    Busca dos números positivos de 8 bits cuya suma desborde con signo pero no sin signo.
  </Step>

  <Step title="Restar">
    Cambia a resta y comprueba que $A - A = 0$ para cualquier A.
  </Step>
</Steps>

## Errores frecuentes

* **Olvidar el acarreo** de la columna anterior.
* **Confundir desbordamiento con acarreo final** en números con signo.
* **Olvidar sumar 1** al restar con complemento a 2.

## Herramientas relacionadas

<CardGroup cols={3}>
  <Card title="Conversor de bases" icon="calculator" href="/electronica/sistemas-numeracion/conversor-bases">
    Binario y complemento a 2.
  </Card>

  <Card title="Puertas lógicas" icon="microchip" href="/electronica/logica-combinacional/puertas-logicas">
    XOR, AND y OR.
  </Card>

  <Card title="Tabla de verdad desde una expresión" icon="code" href="/electronica/logica-combinacional/expresiones">
    Las expresiones del sumador.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.