Elementos de un ordenador. Simuladores hardware¶
Representación de la información¶
Unidades de medida¶
- Bit (unidad mínima, 0/1) y byte (8 bits).
A tener en cuenta
Distinción entre b (bit) y B (byte): una conexión de 600 Mb/s no descarga 600 MB/s, sino unos 75 MB/s.
- Prefijos decimales (SI) frente a prefijos binarios (IEC). Es la razón por la que un disco de 1 TB aparece en el sistema como ~931 GiB.
| Decimal (SI) | Valor | Binario (IEC) | Valor |
|---|---|---|---|
| kB | 10³ | KiB | 2¹⁰ = 1024 |
| MB | 10⁶ | MiB | 2²⁰ |
| GB | 10⁹ | GiB | 2³⁰ |
| TB | 10¹² | TiB | 2⁴⁰ |
- Otras magnitudes del sistema: frecuencia (MHz/GHz), ancho de banda (MB/s, GB/s), latencia (ns, ms), IOPS, potencia (W), temperatura (°C).
Sistemas de representación¶
- Sistemas de numeración: binario, octal, decimal, hexadecimal. Conversiones entre bases y agrupación binario ↔ hexadecimal (4 bits = 1 dígito hex). Si queréis profundizar, tenéis este apartado.
- Enteros con signo: signo-magnitud y complemento a 2. Rango representable con n bits. Desbordamiento.
- Reales: introducción a la coma flotante IEEE 754 (signo, exponente, mantisa) y a los errores de redondeo (
0.1 + 0.2 != 0.3). - Caracteres: ASCII, ISO-8859-15 y Unicode/UTF-8. Por qué UTF-8 es el estándar actual y de dónde salen los "caracteres raros" al abrir un fichero con la codificación equivocada.
- Multimedia: muestreo, profundidad de bits, resolución; compresión con y sin pérdida.
En esta playlist tienes como podemos pasar de un sistema de represnación a otro.
Conversión del número 288 a binario y hexadecimal?
| Base | Valor |
|---|---|
| Decimal | 288₁₀ |
| Binario | 100100000₂ |
| Hexadecimal | 120₁₆ (0x120) |
- De decimal a binario (divisiones sucesivas entre 2)
El método consiste en dividir el número entre 2 repetidamente, anotando el resto de cada división (que solo puede ser 0 o 1), hasta llegar a un cociente de 0. El número binario se forma leyendo los restos de abajo hacia arriba, es decir, del último al primero.
| Paso | División | Cociente | Resto |
|---|---|---|---|
| 1 | 288 ÷ 2 | 144 | 0 |
| 2 | 144 ÷ 2 | 72 | 0 |
| 3 | 72 ÷ 2 | 36 | 0 |
| 4 | 36 ÷ 2 | 18 | 0 |
| 5 | 18 ÷ 2 | 9 | 0 |
| 6 | 9 ÷ 2 | 4 | 1 |
| 7 | 4 ÷ 2 | 2 | 0 |
| 8 | 2 ÷ 2 | 1 | 0 |
| 9 | 1 ÷ 2 | 0 | 1 |
Paramos en el paso 9 porque el cociente ya es 0.
Ahora leemos la columna de restos de abajo arriba (del paso 9 al paso 1):
1 0 0 1 0 0 0 0 0
288₁₀ = 100100000₂
El primer resto obtenido es el bit menos significativo (el de la derecha) y el último es el bit más significativo (el de la izquierda). Por eso se lee al revés.
Comprobación por sumas de potencias de 2¶
Otra forma de llegar al mismo resultado: buscar la mayor potencia de 2 que cabe en el número e ir restando.
- La mayor potencia de 2 menor o igual que 288 es 256 (2⁸). → 288 − 256 = 32
- La mayor potencia de 2 menor o igual que 32 es 32 (2⁵). → 32 − 32 = 0 Así que 288 = 256 + 32 = 2⁸ + 2⁵. Colocamos un 1 en las posiciones 8 y 5, y un 0 en el resto:
| Posición | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| Valor (2ⁿ) | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Bit | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
256 + 32 = 288 ✔ Coincide con el resultado de las divisiones.
Hacen falta 9 bits para representar 288. Con 8 bits solo se llega hasta 255, así que este número no cabe en un byte sin signo.
- De decimal a hexadecimal (divisiones sucesivas entre 16)
El procedimiento es idéntico, pero dividiendo entre 16. Los restos van de 0 a 15, y los valores del 10 al 15 se escriben con letras: A=10, B=11, C=12, D=13, E=14, F=15.
| Paso | División | Cociente | Resto | Dígito hex |
|---|---|---|---|---|
| 1 | 288 ÷ 16 | 18 | 0 | 0 |
| 2 | 18 ÷ 16 | 1 | 2 | 2 |
| 3 | 1 ÷ 16 | 0 | 1 | 1 |
Leemos los restos de abajo arriba:
1 2 0
288₁₀ = 120₁₆ = 0x120
Comprobación
Multiplicamos cada dígito por su peso (potencias de 16):
1 × 16² + 2 × 16¹ + 0 × 16⁰
= 1 × 256 + 2 × 16 + 0 × 1
= 256 + 32 + 0
= 288 ✔
- Atajo: de binario a hexadecimal directamente
Como 16 = 2⁴, cada dígito hexadecimal equivale exactamente a 4 bits. Esto permite convertir sin pasar por decimal.
Partimos del binario y agrupamos de 4 en 4 desde la derecha, rellenando con ceros a la izquierda si el último grupo queda incompleto:
100100000 → 1 0010 0000 → 0001 0010 0000
└─┬┘ └─┬┘ └─┬┘
1 2 0
| Grupo de 4 bits | Valor decimal | Dígito hex |
|---|---|---|
0001 |
1 | 1 |
0010 |
2 | 2 |
0000 |
0 | 0 |
Resultado: 0x120 ✔ Coincide con el apartado 2.
Este atajo funciona igual en sentido inverso: cada dígito hexadecimal se sustituye por sus 4 bits y se obtiene el binario directamente. Es la razón por la que el hexadecimal se usa tanto en informática: es una forma compacta de escribir binario (3 dígitos hex frente a 9 bits) sin perder la correspondencia directa con los bits.
-
Resumen del procedimiento
-
A binario: divisiones sucesivas entre 2 → leer restos de abajo arriba.
- A hexadecimal: divisiones sucesivas entre 16 → leer restos de abajo arriba (10–15 como A–F).
- Atajo binario ↔ hexadecimal: agrupar los bits de 4 en 4 desde la derecha.
- Comprobar siempre: multiplicar cada dígito por su peso (potencia de la base) y sumar. Debe dar el número original.
288₁₀ = 100100000₂ = 120₁₆
Activicades¶
-
AC 0101. Convierte a las bases indicadas:
183₁₀ → binario y hexadecimal1101 0110₂ → decimal y hexadecimal0x3F7→ decimal y binario.
-
AC 0102. Un disco anunciado como 2 TB aparece en el sistema como 1,81 TiB. Justifica la diferencia con el cálculo exacto.
-
AC 0103. Tu conexión es de 300 Mb/s simétricos. ¿Cuánto tardarías, en el mejor de los casos, en descargar una ISO de LliureX de 4,7 GB? Indica las conversiones.