🌟 1. Representación binaria con signo y magnitud
¿Qué es?
- Usamos 1 bit para el signo:
0= positivo1= negativo
- El resto de bits representa la magnitud (el número en sí, sin signo).
Ejemplo:
- 5 bits →
1 0010= -18
El primer bit es1→ negativo
Los otros son0010→ 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?
- Se invierten los bits del número positivo (cambiamos
0 ↔ 1) - 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?
- Se hace el CA1 (cambiar 0 ↔ 1)
- 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 exponenteF= 23 bits de mantisa
🧮 ¿Cómo se interpreta?
Fórmula:
valor = (–1)^S × 1.M × 2^(E–127)
Donde:
Ses el bit de signoMes la mantisa (añadiendo un 1 implícito delante)Ees 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