Sistemas de numeración: problemas de práctica con soluciones paso a paso
También llamado: sistema binario · sistema hexadecimal · conversión de bases
Problemas gratis de Sistemas de numeración con diagramas, pistas y soluciones completas. Valores nuevos cada vez, en tres niveles: de binario y hexadecimal a decimal, complemento a dos, bits, rangos y memoria.
Problema de práctica gratisFácil
Pon los bits para que el registro de 8 bits contenga 0x99. ¿Cuál es el valor N del patrón en decimal?
0x99
Haz clic en un bit para cambiarlo entre 0 y 1. El cuadro muestra tu patrón como un número sin signo, y también puedes escribirlo. Respuesta exacta: un número entero, sin redondear.
divide entre la base y lee los restos de abajo arriba
Hexadecimal ↔ binario
un dígito hexadecimal = 4 bits
Complemento a dos
invierte los bits y suma 1
Aprende Sistemas de numeración desde cero
1Qué es un sistema de numeración
En la vida diaria cuentas en decimal, base 10. Tiene diez dígitos, del 0 al 9, y cada posición vale diez veces la posición que está a su derecha.
En 352, el 3 vale 300, el 5 vale 50 y el 2 vale 2. Las posiciones valen 1, 10, 100 empezando por la derecha.
352 = 3 · 100 + 5 · 10 + 2 · 1
Un ordenador guarda todo como interruptores encendidos o apagados. Por eso cuenta en binario, base 2, con solo los dígitos 0 y 1.
Un dígito binario es un bit. Un grupo de 8 bits es un byte.
La regla es la misma en cualquier base: cada dígito vale su valor por una potencia de la base.
Autoevaluación En el número decimal 4721, ¿cuánto vale el 7?
7000
700
70
7
Respuesta: 700. Contando desde la derecha, las posiciones valen 1, 10, 100 y 1000. El 7 está en la tercera posición, así que vale 7 · 100 = 700.
2Binario y hexadecimal
En binario las posiciones valen 1, 2, 4, 8, 16 y así sucesivamente, desde la derecha. Cada posición vale el doble que la que está a su derecha.
Para un número de 8 bits las posiciones valen 128, 64, 32, 16, 8, 4, 2 y 1.
Para leer un número binario, suma los valores de posición de cada bit que vale 1. Para 0011 0010 son 32 + 16 + 2 = 50.
Las filas largas de bits son difíciles de leer. Los programadores suelen escribirlas en hexadecimal (hex), base 16.
El hexadecimal necesita 16 dígitos. Usa del 0 al 9 y después las letras A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15.
Las posiciones en hex valen 1, 16, 256 y 4096, desde la derecha. Un número hex suele escribirse con 0x delante, por ejemplo 0x2F.
Un dígito hex son exactamente 4 bits, así que 0011 0010 es 0x32: 0011 es 3 y 0010 es 2.
Autoevaluación ¿Cuánto es 0x1A en decimal?
110
11
161
26
Respuesta: 26. A = 10. Las posiciones son 16 y 1, así que 1 · 16 + 10 · 1 = 26. Escribir los dígitos uno al lado del otro (110) o sumarlos (11) ignora los valores de posición. 161 usa las posiciones en el orden equivocado.
3Números negativos: complemento a dos
Un byte con todas las posiciones positivas guarda de 0 a 255. Esto se llama sin signo.
Para guardar números negativos, los ordenadores usan el complemento a dos. El único cambio es que el bit de la izquierda vale −128 en lugar de +128.
Así, 1000 0011 es −128 + 2 + 1 = −125. El bit de la izquierda se llama bit de signo: cuando es 1, el número es negativo.
Un número en complemento a dos de 8 bits va de −128 (1000 0000) a +127 (0111 1111).
Para escribir un número negativo −x, parte de +x en binario, invierte cada bit (0 pasa a 1, 1 pasa a 0) y suma 1.
Ejemplo para −5: 5 es 0000 0101. Invertido es 1111 1010. Sumando 1 se obtiene 1111 1011.
El mismo patrón leído sin signo tiene el valor 256 − x. Para −5 eso es 251, y 1111 1011 es efectivamente 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Autoevaluación El patrón de 8 bits 1111 1111 guarda un número en complemento a dos. ¿Cuál es su valor?
255
−127
−128
−1
Respuesta: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 es la lectura sin signo. −127 sale de tratar el primer bit como un signo menos delante de 111 1111.
4El método paso a paso
De binario o hex a decimal:
Escribe el valor de posición bajo cada dígito: potencias de 2 para binario, potencias de 16 para hex, empezando por 1 a la derecha.
En hex, sustituye cada letra por su valor: A = 10 hasta F = 15.
Multiplica cada dígito por su valor de posición y suma todo.
Complemento a dos:
Para leer un patrón, da al bit de la izquierda el valor −128 (en 8 bits) y suma los valores de posición de todos los bits que valen 1.
Para escribir −x, escribe +x en 8 bits, invierte cada bit y suma 1.
El valor sin signo de ese patrón es 256 − x. Úsalo para comprobar tus bits.
Bits, rangos y memoria:
n bits dan 2ⁿ patrones distintos.
Sin signo guardan de 0 a 2ⁿ − 1. En complemento a dos guardan de −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1.
Para dar a k elementos su propio código, busca el menor b con 2b ≥ k.
Para la memoria, multiplica el número de elementos por los bits por elemento y luego divide entre 8 para obtener bytes y entre 1024 para KiB.
M = ancho × alto × bits por píxel / 8 / 1024 (KiB)
5Un ejemplo resuelto
Sigue cada paso. Intenta adivinar el siguiente antes de abrirlo.
Ejemplo resuelto
El patrón de 8 bits 1011 0110 guarda un entero con signo en complemento a dos. ¿Cuál es su valor N en decimal?
1
Escribe los valores de posición
En complemento a dos la posición de la izquierda vale −128. Las demás posiciones son 64, 32, 16, 8, 4, 2 y 1.
2
Mira el bit de signo
El bit de la izquierda es 1, así que el número es negativo.
3
Suma los bits que valen 1
Los bits que valen 1 están en las posiciones −128, 32, 16, 4 y 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Comprueba con el valor sin signo
Leído sin signo, el patrón es 128 + 32 + 16 + 4 + 2 = 182.
Para un número negativo el valor sin signo es 256 − x, así que x = 256 − 182 = 74. Eso vuelve a dar N = −74.
5
Comprueba invirtiendo
Invierte 1011 0110 para obtener 0100 1001 y suma 1 para obtener 0100 1010.
0100 1010 es 64 + 8 + 2 = 74. Así que el patrón original es −74.
Respuesta
N = −74
6Errores frecuentes
Olvidar sumar 1 después de invertir los bits. Acabas con un valor una unidad menor.
Leer un patrón en complemento a dos como sin signo, por ejemplo 1111 1111 como 255 en lugar de −1.
Tratar el bit de signo como un signo menos delante de los demás bits. En complemento a dos vale −128.
Dar las posiciones en el orden equivocado. La posición que vale 1 está siempre a la derecha.
Usar A = 11 en hex. Las letras empiezan en A = 10.
Mezclar bits y bytes en las preguntas de memoria. Divide el número de bits entre 8.
Autoevaluación ¿Cuál es −5 como patrón de complemento a dos de 8 bits?
0000 0101
1000 0101
1111 1010
1111 1011
Respuesta: 1111 1011. 5 es 0000 0101. Al invertir se obtiene 1111 1010, y al sumar 1 se obtiene 1111 1011. 1111 1010 olvida sumar 1, y 1000 0101 pone un signo menos delante del 5.
7Cómo son las preguntas de examen
Fácil: de binario y hex a decimal. Convierte un número binario de 8 bits o un número hex de 3 dígitos a decimal.
Medio: complemento a dos. Lee el valor de un patrón con signo de 8 bits, o escribe un número negativo como patrón y da su valor sin signo.
Difícil: bits, rangos y memoria. El mayor o el más negativo valor que cabe en n bits, el número de bits necesarios para k códigos, o la memoria que ocupa una imagen.
Ejemplo de pregunta difícil: una imagen de 256 × 256 con 24 bits por píxel ocupa 256 · 256 · 24 / 8 / 1024 = 192 KiB.
Autoevaluación ¿Cuál es el menor número de bits que da a 375 elementos su propio código?
188
512
8
9
Respuesta: 9. 2⁸ = 256 son pocos códigos, 2⁹ = 512 son suficientes, así que 9 bits. 512 es el número de códigos, no el número de bits.
Convierte el número hexadecimal 0x2BE a decimal. Calcula N.
0x2BEA = 10 … F = 15
Calcula N
Mostrar pistas
En hexadecimal las posiciones valen 1, 16, 256, 4096 desde la derecha.
Sustituye las letras por sus valores (A = 10 … F = 15), multiplica por el valor posicional y suma.
2 = 2, B = 11, E = 14.
Mostrar la respuesta y la solución paso a paso
Sistemas de numeración posicionales: cada dígito vale su valor por una potencia de la base. En binario las posiciones valen 1, 2, 4, 8, 16, …; en hexadecimal 1, 16, 256, …, con A–F para 10–15. En complemento a dos de 8 bits, el bit de la izquierda vale −128 en vez de +128; así se guardan los números negativos.
Multiplicar cada dígito por su valor posicional
2·256 + 11·16 + 14·1 = 702
Respuesta
0x2BE = 702
Ejemplo 2Media
Pon los bits para que almacenen −45 en complemento a dos de 8 bits. Leído como un número sin signo, ¿cuál es el valor U del patrón?
N = −458 bit
Calcula U
Mostrar pistas
Escribe 45 en binario, invierte todos los bits y suma 1.
45 = 0010 1101₂.
Como número sin signo, el patrón es igual a 256 + N.
Mostrar la respuesta y la solución paso a paso
Poner bits: cada bit vale una potencia de dos (128, 64, …, 1). Un dígito hexadecimal son exactamente cuatro bits, y en complemento a dos de 8 bits el bit de más a la izquierda vale −128. Las operaciones bit a bit actúan sobre cada posición de bit por separado.
Invertir y sumar uno
45 = 0010 1101
invertido: 1101 0010
+1 → 1101 0011
Leerlo sin signo
1101 0011₂ = 256 − 45 = 211
Respuesta
U = 211
Ejemplo 3Difícil
Pon los bits al resultado de 8 bits de 0111 0001 >> 3. ¿Cuál es el valor R del resultado en decimal?
0111 0001>> 3
Calcula R
Mostrar pistas
Desplazar a la derecha 3 mueve cada bit 3 posiciones a la derecha; los bits que salen por el extremo derecho se pierden y entran ceros por la izquierda.
Trabaja una posición de bit cada vez, de izquierda a derecha.
Los cuatro primeros bits del resultado son 0000.
Mostrar la respuesta y la solución paso a paso
Poner bits: cada bit vale una potencia de dos (128, 64, …, 1). Un dígito hexadecimal son exactamente cuatro bits, y en complemento a dos de 8 bits el bit de más a la izquierda vale −128. Las operaciones bit a bit actúan sobre cada posición de bit por separado.
Bit a bit
Desplazar a la derecha 3 mueve cada bit 3 posiciones a la derecha; los bits que salen por el extremo derecho se pierden y entran ceros por la izquierda.
0111 0001 >> 3
= 0000 1110
Valor del resultado
0000 1110₂ = 14
Respuesta
R = 14
Preguntas y respuestas
Sistemas de numeración: ¿qué es?
En la vida diaria cuentas en decimal, base 10. Tiene diez dígitos, del 0 al 9, y cada posición vale diez veces la posición que está a su derecha.
En 352, el 3 vale 300, el 5 vale 50 y el 2 vale 2. Las posiciones valen 1, 10, 100 empezando por la derecha.
Sistemas de numeración: ¿cómo se resuelven los ejercicios paso a paso?
Sistemas de numeración posicionales: cada dígito vale su valor por una potencia de la base. En binario las posiciones valen 1, 2, 4, 8, 16, …; en hexadecimal 1, 16, 256, …, con A–F para 10–15. En complemento a dos de 8 bits, el bit de la izquierda vale −128 en vez de +128; así se guardan los números negativos.
Sistemas de numeración: ¿qué se practica?
Fácil: de binario y hexadecimal a decimal
Media: complemento a dos
Difícil: bits, rangos y memoria
Cada problema tiene valores nuevos, así aprendes el método y no una respuesta. ¿Te has atascado? Abre primero una pista pequeña y la explicación completa solo cuando la necesites.
Cómo funciona la práctica
Cada problema tiene valores nuevos, así aprendes el método y no una respuesta.
¿Te has atascado? Abre primero una pista pequeña y la explicación completa solo cuando la necesites.
Tu progreso, tus errores y tus problemas guardados se conservan para que puedas repasar antes del examen.