Sistemas digitales, numeración y conversiones
Un sistema digital cuenta, guarda y procesa cantidades. Fuera de la máquina usamos decimal (base 10). Dentro, casi todo es binario (base 2): cada dígito vale 0 o 1. Octal (base 8) y hexadecimal (base 16) son atajos para no escribir tiras enormes de unos y ceros.
Esta unidad es la base del primer parcial: si no conviertes con método, el resto (códigos, Hamming, BCD en displays) se cae.
Sistemas de numeración
Sección titulada «Sistemas de numeración»Un sistema posicional da a cada dígito un peso: potencia de la base, contando desde la derecha (posición 0).
| Sistema | Base | Dígitos | Ejemplo |
|---|---|---|---|
| Decimal | 10 | 0–9 | 45₁₀ |
| Binario | 2 | 0, 1 | 101101₂ |
| Octal | 8 | 0–7 | 55₈ |
| Hexadecimal | 16 | 0–9 y A–F (10–15) | 2D₁₆ |
MSB y LSB (bit más y menos significativo)
Sección titulada «MSB y LSB (bit más y menos significativo)»En inglés se abrevian así; en el parcial y en datasheets salen las siglas, así que conviene la traducción directa:
| Sigla | Inglés | Traducción | Dónde está | Peso |
|---|---|---|---|---|
| MSB | Most Significant Bit | bit más significativo | extremo izquierdo | el mayor (en 8 bits: 128) |
| LSB | Least Significant Bit | bit menos significativo | extremo derecho | el menor (siempre 1) |
“Significativo” aquí no significa “importante en el texto”: significa cuánto aporta al valor. Si volteas el LSB, el número cambia en 1. Si volteas el MSB de un byte, cambia en 128.
Ejemplo 101101₂ (6 bits):
| posición | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|
| bit | 1 | 0 | 1 | 1 | 0 | 1 |
| peso | 32 | 16 | 8 | 4 | 2 | 1 |
| MSB | LSB |
El MSB es el 1 de la izquierda (vale 32). El LSB es el 1 de la derecha (vale 1). En un byte se numeran bits 7…0: bit 7 = MSB, bit 0 = LSB.
Nibble, byte y la tabla hex ↔ binario
Sección titulada «Nibble, byte y la tabla hex ↔ binario»Un bit es un 0 o un 1. Un nibble (a veces nible) es un grupo de 4 bits. Un byte son 8 bits = dos nibbles.
Cuatro bits dan 2⁴ = 16 combinaciones: de 0000 a 1111. El hexadecimal usa exactamente esas 16: un dígito hex es un nibble. Por eso 2D₁₆ son dos nibbles: 0010 y 1101.
Eso se escribe en una tabla de equivalencias (abajo). Se parece a una tabla de verdad porque lista todas las combinaciones de 4 bits; la diferencia es el significado de la última columna.
| Hex | Binario (nibble) | Decimal |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| A | 1010 | 10 |
| B | 1011 | 11 |
| C | 1100 | 12 |
| D | 1101 | 13 |
| E | 1110 | 14 |
| F | 1111 | 15 |
Octal es lo mismo con 3 bits (8 combinaciones): 0 → 000 … 7 → 111.
Conversiones
Sección titulada «Conversiones»El binario es el centro: casi todo pasa por ahí. Las flechas ↔ son bilaterales (idas y vueltas). Decimal ↔ binario va directo. Hex ↔ binario y octal ↔ binario también (agrupando bits). Decimal ↔ hex no se agrupa: o pasas por binario, o divides entre 16.
↔ pesos / ÷ 2
↔ grupos de 3
↔ grupos de 4
Binario → decimal
Sección titulada «Binario → decimal»Hay dos métodos que dan el mismo resultado. En el parcial vale cualquiera si lo justificas.
Método 1 — suma de pesos. Bajo cada bit pones su potencia de 2 (… 32 16 8 4 2 1) y solo sumas donde el bit es 1.
Ejemplo 101101₂:
| posición | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|
| bit | 1 | 0 | 1 | 1 | 0 | 1 |
| peso | 32 | 16 | 8 | 4 | 2 | 1 |
| aporta | 32 | — | 8 | 4 | — | 1 |
| MSB | LSB |
suma: 32 + 8 + 4 + 1 = 4510
Los ceros no aportan (casillas con —). En verde: 32 + 8 + 4 + 1 = 45₁₀.
Método 2 — duplicar y sumar (desde el MSB). Tomas el primer bit (izquierda). Luego, por cada bit que sigue: (lo que llevas) × 2 + ese bit. El 2 se escribe en cada renglón; no hay problema en repetir el número.
101101₂, de izquierda a derecha:
| Bit que entra | Operación | Resultado |
|---|---|---|
1 (MSB) | empiezas con ese bit | 1 |
0 | 1 × 2 + 0 | 2 |
1 | 2 × 2 + 1 | 5 |
1 | 5 × 2 + 1 | 11 |
0 | 11 × 2 + 0 | 22 |
1 (LSB) | 22 × 2 + 1 | 45 |
Otra vez 45₁₀.
Qué es la regla de Horner
Sección titulada «Qué es la regla de Horner»William George Horner (siglo XIX) describió una forma de evaluar un polinomio anidando sumas y productos, sin calcular cada potencia por separado.
Un número en base b es un polinomio: el bit más a la izquierda multiplica bⁿ, el siguiente bⁿ⁻¹, y el LSB multiplica b⁰ = 1. Eso se factoriza así:
101101₂ = (((((1)×2 + 0)×2 + 1)×2 + 1)×2 + 0)×2 + 1
Cada paréntesis es un renglón de la tabla: llevas × 2 + bit. Por eso “duplicar y sumar” y “regla de Horner” son el mismo método cuando la base es 2.
En hexadecimal sería × 16 + dígito; en decimal, × 10 + dígito. No hace falta memorizar 32, 64, 128…: el anidado las genera solo.
Útil si el número es largo. Con 6–8 bits, la suma de pesos sigue siendo más visual.
Decimal → binario (división entre 2)
Sección titulada «Decimal → binario (división entre 2)»Divide entre 2, anota el resto (0 o 1). El binario se lee de abajo hacia arriba (el último resto es el MSB).
45₁₀:
45 ÷ 2 = 22 resto 122 ÷ 2 = 11 resto 011 ÷ 2 = 5 resto 1 5 ÷ 2 = 2 resto 1 2 ÷ 2 = 1 resto 0 1 ÷ 2 = 0 resto 1→ 101101₂ (comprueba: 32+8+4+1 = 45).
Binario ↔ octal (grupos de 3)
Sección titulada «Binario ↔ octal (grupos de 3)»Desde el LSB, agrupa de a 3 bits. Completa con ceros a la izquierda si hace falta. Cada grupo es un dígito octal.
101101₂ → 101 101 → 55₈
Al revés: cada dígito octal → 3 bits. 153₈ → 001 101 011 → 1101011₂.
Binario ↔ hexadecimal (grupos de 4)
Sección titulada «Binario ↔ hexadecimal (grupos de 4)»Igual, pero de a 4 bits.
101101₂ → 0010 1101 → 2D₁₆
2F₁₆ → 0010 1111 → 101111₂ = 32+8+4+2+1 = 47₁₀.
Decimal ↔ hexadecimal
Sección titulada «Decimal ↔ hexadecimal»En el mapa no hay flecha directa por agrupación entre decimal y hex: 10 y 16 no “parten” el mismo número de bits. El camino de aula (y el más seguro en el parcial) es pasar por el centro:
decimal → binario → hex y al revés hex → binario → decimal
Ida (45₁₀ → hex), por binario:
- Decimal → binario (÷ 2):
45₁₀=101101₂(ya lo hiciste arriba). - Binario → hex (grupos de 4 desde el LSB). Sobran 6 bits: completa a la izquierda con ceros →
0010 1101. - Cada nibble es un dígito hex:
0010= 2,1101= D →2D₁₆.
Vuelta (2D₁₆ → decimal), por binario:
- Cada dígito hex → 4 bits:
2=0010,D=1101→00101101₂. - Binario → decimal (pesos): 32+8+4+1 = 45₁₀.
Otro camino (sin agrupar bits): divide el decimal entre 16, restos de abajo hacia arriba (10=A … 15=F). No es “más directo” en el mapa: es otra aritmética, misma llegada.
45 ÷ 16 = 2 resto 13 → D 2 ÷ 16 = 0 resto 2 → 2Lees restos de abajo arriba: 2D₁₆. Para volver: 2×16 + 13 = 45.
Parte fraccionaria
Sección titulada «Parte fraccionaria»Separa el número en entera y fraccionaria (el punto). La parte entera se convierte con los métodos de arriba. La fracción no se divide entre 2: se multiplica por la base.
Decimal → binario (fracción)
Sección titulada «Decimal → binario (fracción)»Regla: fracción × 2. El entero que aparece (0 o 1) es el siguiente bit después del punto. Te quedas solo con la parte decimal nueva y repites. El primer bit que sale es el de más peso a la derecha del punto (2⁻¹ = 1/2).
Paras cuando la fracción queda 0, o cuando el profesor pide n bits (si no termina, se aproxima).
Ejemplo 0,625₁₀:
| Paso | Cuenta | Bit que sale | Fracción que sigue |
|---|---|---|---|
| 1 | 0,625 × 2 = 1,250 | 1 | 0,250 |
| 2 | 0,250 × 2 = 0,500 | 0 | 0,500 |
| 3 | 0,500 × 2 = 1,000 | 1 | 0 (terminó) |
Los bits se leen de arriba hacia abajo (el primero es el más cercano al punto): 0,101₂.
Número mixto: convierte cada lado y junta con el punto. 5,625₁₀ → 5 = 101₂ y 0,625 = 0,101₂ → 101,101₂.
Si no cierra en 0 (pasa con 0,1₁₀), el binario se repite. Escribes los bits que pidan y listo; no es un error del método.
Binario → decimal (fracción)
Sección titulada «Binario → decimal (fracción)»A la derecha del punto los pesos son 1/2, 1/4, 1/8, 1/16… (o 0,5, 0,25, 0,125…). Solo sumas donde hay 1. Igual que en enteros, pero hacia la derecha.
0,101₂:
| Bit | Peso | Aporta |
|---|---|---|
1 (junto al punto) | 0,5 | 0,5 |
0 | 0,25 | — |
1 | 0,125 | 0,125 |
0,5 + 0,125 = 0,625₁₀. Con la parte entera: 101,101₂ = 5 + 0,625 = 5,625₁₀.
Octal y hex (fracción)
Sección titulada «Octal y hex (fracción)»Misma idea, otra base: fracción × 8 (octal) o × 16 (hex). El entero que sale es el siguiente dígito (en hex, 10–15 = A–F).
En el mapa del centro sigue valiendo el atajo: fracción decimal → binario → hex (grupos de 4 bits a la derecha del punto, completar con ceros a la derecha si hace falta).
Códigos que caen con esta unidad
Sección titulada «Códigos que caen con esta unidad»En el mismo capítulo 2, después de convertir, vienen BCD, exceso-3, Gray y paridad (esta última se cierra en Hamming).
BCD no es binario
Sección titulada «BCD no es binario»BCD (Binary-Coded Decimal, decimal codificado en binario): cada dígito decimal se traduce solo, con 4 bits, usando la misma tabla de 0–9 del nibble. No conviertes el número entero a binario y luego lo cortas.
Tabla que usas (solo 0–9; 1010…1111 no son dígitos BCD):
| Dígito | BCD (4 bits) | Dígito | BCD |
|---|---|---|---|
| 0 | 0000 | 5 | 0101 |
| 1 | 0001 | 6 | 0110 |
| 2 | 0010 | 7 | 0111 |
| 3 | 0011 | 8 | 1000 |
| 4 | 0100 | 9 | 1001 |
45₁₀ en BCD, dígito a dígito:
- El
4→ mira la tabla →0100 - El
5→0101 - Pégalos:
0100 0101
El binario puro de 45 es otra cuenta: 32+8+4+1 = 101101₂. Si agrupas ese 101101 de a 4 (0010 1101) obtienes hex 2D, no BCD. Por eso la columna “binario puro” y la de “BCD” no coinciden y las dos están bien.
59₁₀ en BCD: 5 → 0101, 9 → 1001 → 0101 1001.
Binario puro: 32+16+8+2+1 = 111011₂ (otra vez distinto).
En parciales aparecen interruptores 00–99 (4 bits de decenas + 4 de unidades) y displays. “Pasa 59 a BCD” no es “pasa 59 a binario”.
Exceso-3
Sección titulada «Exceso-3»A cada dígito decimal le sumas 3 y lo pones en 4 bits: 0 → 0011, 9 → 1100.
59₁₀ en exceso-3: 5+3=8 → 1000, 9+3=12 → 1100 → 1000 1100.
Sirve para aritmética BCD (el 74LS83 aparece más adelante). Aquí basta saber generarlo dígito a dígito.
Código Gray
Sección titulada «Código Gray»El código Gray (o binario reflejado) sirve para que, al pasar de un número al siguiente, solo un bit cambie. En binario normal, 7 → 8 es 0111 → 1000: cambian cuatro bits a la vez; un encoder mecánico puede leer un valor imposible a mitad de camino. Gray evita eso. No se usa para sumar: no tiene pesos 1, 2, 4, 8.
De 0 a 7 (mira que cada fila cambia un solo bit respecto a la anterior):
| Decimal | Binario | Gray |
|---|---|---|
| 0 | 000 | 000 |
| 1 | 001 | 001 |
| 2 | 010 | 011 |
| 3 | 011 | 010 |
| 4 | 100 | 110 |
| 5 | 101 | 111 |
| 6 | 110 | 101 |
| 7 | 111 | 100 |
Binario → Gray
Sección titulada «Binario → Gray»El MSB se copia. Cada bit Gray siguiente es el XOR de ese bit binario con el binario de su izquierda (el más significativo vecino). XOR: sale 1 si los dos bits son distintos.
G_MSB = B_MSB
G = (bit binario de la izquierda) XOR (bit binario de esta posición)
Ejemplo 1011₂ → Gray:
| MSB | LSB | |||
|---|---|---|---|---|
| Binario | 1 | 0 | 1 | 1 |
| Gray | 1 (copia) | 1 XOR 0 = 1 | 0 XOR 1 = 1 | 1 XOR 1 = 0 |
Gray = 1110.
Otro: 101101₂ (el 45 de antes) → copia el primer 1; luego XOR en cadena: 1⊕0=1, 0⊕1=1, 1⊕1=0, 1⊕0=1, 0⊕1=1 → 111011.
Gray → binario (vuelta)
Sección titulada «Gray → binario (vuelta)»El MSB se copia. Cada binario siguiente es el XOR del binario que ya sacaste (izquierda) con el Gray de esa posición.
B_MSB = G_MSB
B = (binario ya obtenido a la izquierda) XOR (Gray de esta posición)
1110 Gray → 1, 1⊕1=0, 0⊕1=1, 1⊕0=1 → 1011₂ (recuperaste el original).
Ejercicios (números distintos a los del ejemplo)
Sección titulada «Ejercicios (números distintos a los del ejemplo)»Hazlos en papel; el método tiene que funcionar si cambian el número.
- Pasa
53₁₀a binario, octal y hexadecimal. - Pasa
1101110₂a decimal, octal y hex. - Pasa
3A₁₆a binario y a decimal. - Escribe
86₁₀en binario puro y en BCD. ¿En qué se diferencian? - Escribe
86₁₀en exceso-3. 0,375₁₀a binario fraccionario.- Pasa
10110₂a Gray y comprueba la vuelta Gray → binario.
Comprobaciones rápidas: (1) 53 = 110101₂ = 65₈ = 35₁₆. (2) 110 = 156₈ = 6E₁₆. (3) 0011 1010₂ = 58. (4) binario 1010110, BCD 1000 0110. (5) 8+3=11 → 1011, 6+3=9 → 1001 → 1011 1001. (6) 0,011₂. (7) Gray 11101; vuelta 10110.
Numeración y conversiones
Basado en: Rojas / Floyd cap. 2 — CALETAS
0 de 0 respondidas
Inicia sesion en CALETAS para sincronizar este resultado entre dispositivos.
Iniciar sesion en CALETASSiguiente paso
Sección titulada «Siguiente paso»Siguiente abre el trabajo de código Hamming (parcial I: reseña + (7,4)). Luego sigue álgebra booleana.
Marca la unidad en la ruta de estudio.