Binario y hexadecimal: 12 ejercicios de oposiciones
Practica binario, decimal y hexadecimal con 12 ejercicios resueltos: conversiones, ceros iniciales, rango sin signo y suma de ocho bits.
En los ejercicios de binario y hexadecimal, la base y el ancho importan tanto como la cuenta. Una secuencia como 11111111 no se interpreta correctamente hasta saber si representa un entero sin signo o un número en complemento a dos.
Este cuaderno ofrece 12 ejercicios originales con soluciones razonadas. Los once primeros trabajan con enteros no negativos o sin signo. El último compara expresamente dos interpretaciones de un patrón de ocho bits. No hay fracciones binarias, coma flotante ni supuestos de comportamiento automático de un lenguaje de programación.
El tema 2 del Bloque II del programa libre de Analista Informático del Ayuntamiento de Sevilla, página 23 del anuncio, incluye sistemas de numeración. El material publicado de esa convocatoria desarrolla la materia. La guía del examen de Sevilla explica cómo se integra en sus pruebas. Estos ejercicios son propios, no preguntas oficiales.
Tres bases, el mismo valor
En un sistema posicional, cada cifra multiplica una potencia de la base. La posición de la derecha tiene exponente cero: vale una unidad. Al avanzar hacia la izquierda, los pesos se multiplican por la base.
| Sistema | Base | Cifras admitidas | Pesos iniciales, desde la derecha |
|---|---|---|---|
| Binario | 2 | 0 y 1 | 1, 2, 4, 8, 16… |
| Decimal | 10 | 0 a 9 | 1, 10, 100, 1000… |
| Hexadecimal | 16 | 0 a 9 y A a F | 1, 16, 256, 4096… |
En hexadecimal, A vale 10, B vale 11, C vale 12, D vale 13, E vale 14 y F vale 15. La letra no añade una operación: es una cifra de ese sistema.
Indicaremos la base en cada enunciado para que 10 no resulte ambiguo. 10 en binario vale dos en decimal; 10 en hexadecimal vale dieciséis. Cambiar de representación conserva el valor, aunque cambien los símbolos utilizados.
Cómo pasar de una base a otra
A decimal: desarrolla los pesos y suma. En binario solo sumas las posiciones que tienen un uno. En hexadecimal multiplica también por el valor de las letras.
Desde decimal: divide sucesivamente entre la base de destino y guarda los restos. Al acabar, léelos desde el último al primero. Comprueba la conversión reconstruyendo el valor decimal.
Entre binario y hexadecimal: usa grupos de cuatro bits, porque 16 es dos elevado a cuatro. En enteros, empieza por la derecha; completa con ceros a la izquierda si hace falta. No añadas ceros a la derecha: eso puede cambiar el valor.
| Decimal | Hexadecimal | Cuatro bits |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 2 | 2 | 0010 |
| 3 | 3 | 0011 |
| 4 | 4 | 0100 |
| 5 | 5 | 0101 |
| 6 | 6 | 0110 |
| 7 | 7 | 0111 |
| 8 | 8 | 1000 |
| 9 | 9 | 1001 |
| 10 | A | 1010 |
| 11 | B | 1011 |
| 12 | C | 1100 |
| 13 | D | 1101 |
| 14 | E | 1110 |
| 15 | F | 1111 |
12 ejercicios con solución
Intenta resolver cada caso antes de desplegar. No se fija un tiempo oficial por pregunta: este cuaderno reúne operaciones de distinta dificultad y no reproduce la distribución de un examen.
1. Binario a decimal
Convierte 10110110 en base dos a decimal.
Ver solución del ejercicio 1
Respuesta: 182.
Los pesos con un uno son 128 + 32 + 16 + 4 + 2 = 182. Conserva todos los lugares al escribir los pesos: omitir una posición con cero desplaza las siguientes y produce otro número.
2. Decimal a binario con ocho posiciones
Escribe el número decimal 93 en binario, usando exactamente ocho bits sin signo.
Ver solución del ejercicio 2
Respuesta: 01011101.
93 se descompone en 64 + 16 + 8 + 4 + 1. Sobre los pesos 128, 64, 32, 16, 8, 4, 2 y 1 queda 01011101. El cero inicial permite mostrar ocho posiciones; no añade valor.
3. Hexadecimal a decimal
Convierte 2D7 hexadecimal a decimal.
Ver solución del ejercicio 3
Respuesta: 727.
D vale 13. Por tanto, 2 × 256 + 13 × 16 + 7 = 512 + 208 + 7 = 727. El peso de la cifra izquierda es 16 al cuadrado, no 16 ni cien.
4. Decimal a hexadecimal
Representa el número decimal 684 en hexadecimal.
Ver solución del ejercicio 4
Respuesta: 2AC.
684 dividido entre 16 da cociente 42 y resto 12, que se escribe C. Después, 42 entre 16 da cociente 2 y resto 10, que se escribe A. Lees los restos y el último cociente en sentido inverso: 2AC. Comprobación: 512 + 160 + 12 = 684.
5. Dos cifras hexadecimales a ocho bits
Convierte B4 hexadecimal a binario con ocho bits.
Ver solución del ejercicio 5
Respuesta: 10110100.
B corresponde a 1011 y 4 a 0100. Al unirlos obtienes 10110100. No suprimas el cero inicial del grupo de la derecha: cada cifra hexadecimal ocupa su grupo de cuatro posiciones.
6. Un grupo inicial incompleto
Convierte el entero binario 1101011011 a hexadecimal.
Ver solución del ejercicio 6
Respuesta: 35B.
Agrupas desde la derecha: 11 0101 1011. Completas el primer grupo a la izquierda: 0011 0101 1011. Los grupos son 3, 5 y B: 35B. Como control, ambas representaciones valen 859 en decimal.
7. Valor frente a longitud escrita
Compara 00101101 y 101101, ambos interpretados como enteros binarios sin signo. ¿Tienen el mismo valor y la misma longitud escrita?
Ver solución del ejercicio 7
Respuesta: Mismo valor: 45; longitudes distintas: 8 y 6 bits.
Ambos valen 32 + 8 + 4 + 1 = 45. La primera secuencia tiene ocho cifras y la segunda seis. Los ceros a la izquierda no alteran el valor sin signo; sí afectan a la longitud escrita. No se está comparando su interpretación con signo.
8. Combinaciones y máximo sin signo
Un campo tiene ocho bits y representa enteros sin signo. ¿Cuántos valores distintos admite y cuál es su intervalo?
Ver solución del ejercicio 8
Respuesta: 256 valores; de 0 a 255.
Hay 2 elevado a 8 = 256 combinaciones. Como se incluye el cero, el máximo es 256 − 1 = 255. Confundir cantidad de valores con máximo desplaza el límite en una unidad.
9. Bits mínimos para estados distintos
Debes asignar un patrón binario distinto a cada uno de 300 estados. Todos los patrones tienen igual longitud y ninguno se reserva para otra función. ¿Cuál es el mínimo número de bits?
Ver solución del ejercicio 9
Respuesta: 9 bits.
Con ocho bits solo hay 256 patrones, insuficientes para 300 estados. Con nueve hay 512, suficientes. Necesitas que dos elevado al número de bits sea al menos 300. Las condiciones del enunciado evitan descontar patrones reservados que no se han previsto.
10. Una suma que necesita otra posición
Suma 101101 y 011111 en binario. No hay un ancho fijo de almacenamiento: escribe el resultado matemático completo.
Ver solución del ejercicio 10
Respuesta: 1001100.
Los operandos valen 45 y 31; su suma es 76, cuya representación binaria es 1001100. Son siete posiciones. El resultado no tiene que conservar las seis cifras con las que se escribieron los operandos.
11. Resultado completo y ocho bits inferiores
Suma los patrones sin signo 11110000 y 00110000. Escribe el resultado completo. Después aplica este modelo explícito: conservar únicamente los ocho bits inferiores. ¿Qué patrón queda y qué valor representa?
Ver solución del ejercicio 11
Respuesta: Completo: 100100000; ocho inferiores: 00100000, valor 32.
Los valores son 240 y 48: la suma completa es 288, escrita 100100000, con nueve bits. Los ocho inferiores son 00100000, que valen 32. El bit descartado tiene peso 256: 288 = 256 + 32. Hay desbordamiento respecto al intervalo sin signo de ocho bits. Conservar esos bits es la operación indicada aquí; no se afirma que todos los lenguajes o tipos numéricos gestionen así un desbordamiento.
12. El patrón no decide por sí solo el signo
Interpreta 11111111 de dos formas, manteniendo exactamente ocho bits: primero como entero sin signo y después en complemento a dos.
Ver solución del ejercicio 12
Respuesta: Sin signo: 255; complemento a dos de 8 bits: −1.
Sin signo sumas todos los pesos positivos: 255. En complemento a dos de ocho bits, el peso del bit izquierdo es −128 y los otros suman 127: −128 + 127 = −1. También puedes restar 256 al valor sin signo cuando el bit izquierdo es uno. No has cambiado los bits: has cambiado la regla de interpretación.
Comprobar con una herramienta sin perder el método
La documentación oficial de Python sobre int, bin y hex explica cómo interpretar cadenas en una base y convertir enteros. Puedes contrastar varios resultados así:
int("10110110", 2) # 182
int("2D7", 16) # 727
format(684, "X") # '2AC'
format(93, "08b") # '01011101'
Esto sirve para comprobar una cuenta, no para justificarla en un ejercicio razonado. Además, el entero de Python no es un registro sin signo limitado a ocho bits: una suma normal de 240 y 48 devuelve 288. El modelo del caso 11 debe aplicarse por separado.
Qué revisar según el fallo
En los casos 1 a 4, reconstruye la suma de potencias y comprueba los restos. En 5 y 6, verifica que cada cifra hexadecimal ocupa cuatro bits y que has agrupado desde la derecha. En 7 a 9, separa valor, longitud escrita y número de combinaciones.
En 10 y 11, pregunta si existe un ancho fijo y qué operación se ha pedido realizar con el resultado. En 12, escribe antes de calcular el ancho y la interpretación. Un patrón puede ser correcto y su lectura numérica, incorrecta.
Después continúa con el material de Analista Informático de Sevilla para integrar numeración con representación de la información y lógica binaria. Esta práctica se centra en esas operaciones y no sustituye el resto del programa.
Preguntas frecuentes
¿Cómo se convierte un número binario a decimal?
Multiplica cada bit por la potencia de dos que corresponde a su posición, empezando por dos elevado a cero en la derecha, y suma los resultados. Los ceros aportan cero, pero mantienen las posiciones.
¿Cuántos bits representa una cifra hexadecimal?
Una cifra hexadecimal corresponde a cuatro bits. Cada grupo tiene dieciséis combinaciones posibles, desde 0000 hasta 1111, equivalentes a las cifras hexadecimales de 0 a F.
¿Los ceros a la izquierda cambian el valor de un entero binario sin signo?
No. Al interpretar el patrón como entero sin signo, añadir ceros a la izquierda conserva su valor. Puede cambiar la longitud escrita o el ancho del campo representado.
¿Ocho bits sin signo representan doscientos cincuenta y seis como valor máximo?
No. Permiten doscientos cincuenta y seis valores distintos, desde cero hasta doscientos cincuenta y cinco. El número de combinaciones y el máximo valor son cantidades diferentes.
¿El mismo patrón de ocho bits puede tener interpretaciones distintas?
Sí. Por ejemplo, 11111111 representa doscientos cincuenta y cinco como entero sin signo y menos uno en complemento a dos de ocho bits. Debes conocer el ancho y la interpretación indicados en el enunciado.
Artículos relacionados
Condiciones booleanas TAI: 12 ejercicios de lógica
Practica tablas de verdad, AND, OR, XOR, De Morgan y condiciones de programación con doce ejercicios originales para TAI y soluciones comprobadas.
Permisos Linux para TAI: 10 ejercicios de chmod y umask
Resuelve diez ejercicios de permisos Linux para TAI: modos octales, chmod, umask, directorios y borrado. Soluciones comprobadas en un sistema Linux.
Subredes IPv4 para TAI: 8 ejercicios CIDR resueltos
Calcula red, broadcast, hosts y prefijos con ocho ejercicios IPv4 para TAI. Incluye división de subredes, agregación y un caso VLSM con resultados comprobados.