Píldora TAI LIX; Guía de Representación Binaria: Signo y Magnitud, CA1, CA2

🌟 1. Representación binaria con signo y magnitud

¿Qué es?

  • Usamos 1 bit para el signo:
    • 0 = positivo
    • 1 = negativo
  • El resto de bits representa la magnitud (el número en sí, sin signo).

Ejemplo:

  • 5 bits → 1 0010 = -18
    El primer bit es 1 → negativo
    Los otros son 0010 → 18 en decimal

❗Problema: Esta representación tiene dos ceros: 00000 y 10000 (positivo y negativo), lo cual complica las operaciones.


🔁 2. Complemento a 1 (CA1) – Para hacer restas

¿Cómo se representa un número negativo?

  1. Se invierten los bits del número positivo (cambiamos 0 ↔ 1)
  2. Se deja el primer bit como signo.

Ejemplo:

  • 0000 1110 = +14
  • Complemento a 1 = 1111 0001 (–14)

Suma con CA1:

  0000 1011  (11)
+ 1111 0001 (–14)
------------
1111 1100

El resultado da –3 en CA1. Si haces suma y sale una unidad de más, se descarta.


➕➖ 3. Complemento a 2 (CA2) – El más usado

¿Cómo se obtiene?

  1. Se hace el CA1 (cambiar 0 ↔ 1)
  2. Se suma 1

Ejemplo:

  • 0000 1110 (14)
    CA1 → 1111 0001
    CA2 = 1111 0010 → representa –14

¿Por qué es útil?

  • Permite hacer sumas y restas más fáciles para el procesador.

🎭 4. Representación SESGADA (biased)

No existe signo como tal, se suma un número fijo (bias) a todos los números. Así todos son positivos, pero internamente sabemos cuál es negativo.

Bias para 8 bits: 128

  • 0010 0101 = 37
  • Si quitamos el bias → 37 – 128 = –91

Esto es muy útil en representaciones de exponentes (lo verás más abajo en IEEE 754).


🧠 5. Números Reales – IEEE 754 (punto flotante)

Formato IEEE 754 de 32 bits (float):

SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF
  • S = 1 bit de signo (0 = positivo, 1 = negativo)
  • E = 8 bits de exponente
  • F = 23 bits de mantisa

🧮 ¿Cómo se interpreta?

Fórmula:

valor = (–1)^S × 1.M × 2^(E–127)

Donde:

  • S es el bit de signo
  • M es la mantisa (añadiendo un 1 implícito delante)
  • E es el exponente (en base 2 y con bias 127)

Ejemplo visual:

Binario:     1 10000001 11010000000000000000000
Signo: 1 → negativo
Exponente: 10000001 = 129 → 129 - 127 = 2
Mantisa: 1.1101 = 1 + 1/2 + 1/4 + 0 + 1/16 = 1.8125

Valor final: (–1)^1 × 1.8125 × 2^2 = –1.8125 × 4 = –7.25

💣 Cuidado con el overflow

Cuando se representa un número demasiado grande para la cantidad de bits disponibles, se produce un desbordamiento, y el valor se reinicia o se trunca erróneamente.

Deja un comentario