Sistema binario y representación de datos

Aprende cómo las computadoras convierten números, texto, imágenes y sonido en bits. Realiza conversiones entre los sistemas decimal, binario y hexadecimal; almacena números enteros sin signo y en complemento a dos; codifica números reales en coma flotante (punto flotante) según IEEE 754 y comprende por qué 0,1 + 0,2 no es exactamente 0,3; codifica texto con ASCII y Unicode (UTF-8); calcula cuánto almacenamiento necesitan las imágenes, el vídeo y el sonido; y descubre cómo la compresión sin pérdidas y con pérdidas reduce el tamaño de los archivos.

PrincipianteUnidad 2 de 7 del curso Curso de Introducción a la informática

Lo que aprenderás

  1. Explica cómo los grupos de bits codifican información y convierte números enteros entre los sistemas decimal, binario y hexadecimal.
    • Explica qué son los bits y los bytes y cuántos valores puede representar un grupo de bits
      Describe los bits y los bytes, calcula cuántos patrones ofrece una cantidad de bits e interpreta correctamente las unidades de almacenamiento y velocidad.
    • Convierte números enteros entre los sistemas decimal y binario
      Usa los valores posicionales para interpretar números binarios y convierte números enteros decimales a binario con dos métodos fiables.
    • Usa el sistema hexadecimal como representación abreviada del binario
      Realiza conversiones entre los sistemas hexadecimal, binario y decimal, y explica por qué se escriben bytes, colores y direcciones en hexadecimal al programar.
  2. Almacena enteros no negativos y negativos en un número fijo de bits, calcula sus rangos de representación y explica qué ocurre cuando un valor no cabe.
    • Almacena enteros sin signo e identifica su rango de representación
      Representa números enteros no negativos con un ancho fijo, elige un ancho en el que quepan los valores y explica el desbordamiento.
    • Representa enteros negativos en complemento a dos
      Lee y escribe números enteros negativos en complemento a dos, determina el rango de un ancho con signo y compáralo con signo y magnitud.
  3. Escribe fracciones en binario, codifica y decodifica números en los formatos de coma flotante de IEEE 754 y explica los límites de su rango de representación y precisión.
    • Escribe fracciones en binario y comprende por qué algunas no pueden representarse de forma exacta
      Convierte entre fracciones decimales y binarias, reconoce fracciones binarias periódicas como 0,1 y describe los números en coma fija.
    • Codifica y decodifica números en coma flotante según IEEE 754
      Usa la notación científica binaria y los campos de signo, exponente y fracción de los formatos de precisión simple y doble de IEEE 754.
    • Explica el rango de representación, la precisión y el error de redondeo en coma flotante
      Explica por qué los valores en coma flotante son aproximaciones, predice efectos típicos como 0,1 + 0,2 y elige un tipo numérico adecuado.
  4. Explica cómo los caracteres se convierten en números y bytes, usa ASCII y Unicode y predice cuántos bytes ocupa un texto en UTF-8.
    • Codifica texto mediante códigos de caracteres y ASCII
      Usa una tabla de códigos de caracteres para convertir texto en números y bits, interpreta la organización de ASCII y explica sus limitaciones.
    • Usa puntos de código Unicode y la codificación UTF-8
      Distingue un punto de código Unicode de sus bytes codificados, codifica caracteres en UTF-8 y explica el texto ilegible por codificación incorrecta y los recuentos de bytes.
  5. Describe cómo las imágenes se convierten en píxeles y valores de color, calcula el almacenamiento que necesitan y explica cómo el sonido se muestrea para convertirlo en números.
    • Representa imágenes mediante píxeles y valores de color
      Describe las imágenes de mapa de bits, la profundidad de color, RGB y los códigos de color hexadecimales, las paletas y la transparencia.
    • Calcula el tamaño de almacenamiento de las imágenes y compara los mapas de bits con los gráficos vectoriales
      Calcula el almacenamiento que necesita una imagen o un vídeo sin comprimir, explica qué añaden los archivos y describe los gráficos vectoriales.
    • Digitaliza sonido mediante muestreo y cuantificación
      Explica el muestreo, la frecuencia de muestreo y la profundidad de bits, aplica la regla del muestreo y calcula el tamaño del audio sin comprimir.
  6. Explica cómo la compresión reduce el tamaño de los datos, aplica métodos sencillos sin pérdidas y elige entre formatos sin pérdidas y con pérdidas.
    • Explica la compresión sin pérdidas mediante la codificación por longitud de rachas y otros códigos
      Aplica la codificación por longitud de rachas y los códigos de longitud variable, describe los métodos de diccionario y explica por qué ningún método reduce todos los archivos.
    • Explica la compresión con pérdidas y elige un formato adecuado
      Describe cómo la compresión con pérdidas descarta detalles menos perceptibles, sopesa la calidad frente al tamaño y elige formatos para distintos tipos de datos.

Guía de estudio de Sistema binario y representación de datos

6 capítulos

1

Cuenta patrones y cambia de base numérica

Una computadora puede usar el mismo grupo de bits para un número, una letra o parte de una imagen. La interpretación da significado al patrón. Antes de trabajar con esas interpretaciones, necesitas contar los patrones disponibles e interpretar las unidades usadas para el almacenamiento y la transferencia. Los sistemas decimal, binario y hexadecimal te ofrecen tres formas de escribir un número entero, cada una con valores posicionales que hacen predecibles las conversiones.

1.1 Bits, bytes y unidades de almacenamiento

Un bit, abreviatura de dígito binario, tiene uno de dos valores: 0 o 1. El hardware puede distinguir con fiabilidad dos estados físicos, como una tensión alta y baja, direcciones opuestas de magnetización o presencia y ausencia de luz. Los dígitos escritos describen esos estados; no tienen por qué aparecer literalmente dentro de un dispositivo.

Cuenta los patrones

Cada bit nuevo duplica las posibilidades. Dos bits tienen cuatro patrones: 00, 01, 10 y 11. Tres bits tienen ocho. En general, n bits ofrecen 2n patrones. Un cuarteto de bits tiene 4 bits y un byte tiene 8 bits, por lo que un byte tiene 256 patrones. Un byte también es la unidad mínima de memoria direccionable en la mayoría de las computadoras modernas.

Para codificar un conjunto de valores, elige suficientes patrones para todos sus elementos. Para 26 letras, cuatro bits ofrecen solo 16 patrones; cinco bits ofrecen 32, por lo que bastan cinco bits. Para 1000 valores, nueve bits ofrecen 512 y diez ofrecen 1024. Puede haber patrones sin usar. Con 16 bits hay 65 536 patrones y con 32 hay 4 294 967 296.

El número de patrones difiere del mayor número sin signo. Cuatro bits ofrecen 16 patrones, pero el recuento empieza en cero, por lo que los valores van de 0 a 15. Un patrón ya se usa para el cero.

Para hallar el ancho mínimo de forma sistemática, compara potencias sucesivas de dos con el número de opciones necesarias. Detente en la primera potencia lo bastante grande. La condición es 2n≥N para N valores distintos. La igualdad exacta es válida: ocho opciones caben en tres bits, mientras que una novena necesita un cuarto bit. Un ancho mayor también sirve, pero deja de ser el mínimo.

Da significado al patrón

El byte 01000001 puede significar el entero 65, la letra ASCII «A» o una intensidad de canal de color de 65 en una escala de 0–255. Los bits por sí solos no seleccionan una interpretación. El tipo de dato de un programa y el formato del archivo determinan cómo interpretarlos.

Interpreta las unidades de almacenamiento

Son habituales dos familias de prefijos:

Almacenamiento decimalBytesAlmacenamiento binarioBytes
1 kB10001 KiB1024
1 MB1 000 0001 MiB1 048 576
1 GB1 000 000 0001 GiB1 073 741 824

Los prefijos decimales son prefijos del SI; los binarios son prefijos de la IEC. En cada salto decimal, la unidad aumenta por un factor de 1000; en cada salto binario, por uno de 1024. Para expresar bytes en una unidad mayor, divide entre el número de bytes de esa unidad.

Una unidad etiquetada como de 500 GB contiene 500 000 000 000 bytes. Al dividir entre 1 073 741 824 se obtienen unos 465,66 GiB. El software puede etiquetar esa cantidad binaria como «GB», lo que hace que la capacidad mostrada parezca menor. El cambio de unidad en sí no ha eliminado ningún byte; el formateo y los archivos del sistema son cuestiones distintas.

Distingue bits de bytes

La b minúscula significa bit; la B mayúscula significa byte. Una conexión de 100 Mbit/s transfiere como máximo 100 millones de bits cada segundo. Dividir entre 8 da 12,5 millones de bytes por segundo, o 12,5 MB/s, antes de descontar la sobrecarga de información de control de los protocolos. Interpretar esa velocidad como 100 MB/s la multiplica por ocho.

Puntos clave

  • Un byte tiene 8 bits; un cuarteto de bits tiene 4.
  • Cada bit adicional duplica el número de patrones.
  • Elige el menor número de bits cuyos patrones disponibles cubran todos los valores.
  • Un tipo de dato o una codificación da significado a un patrón de bits.
  • Los prefijos de almacenamiento del SI usan potencias de 10; los de la IEC usan potencias de 2.
  • Divide una tasa de bits entre 8 para obtener la tasa de bytes correspondiente.

1.2 Valor posicional y conversión en binario

El binario es un sistema de numeración posicional: el valor de un dígito depende de dónde esté. El decimal usa diez dígitos y potencias de 10. El binario usa dos dígitos, 0 y 1, y potencias de 2. Interpretar un número binario consiste en sumar los valores de las posiciones que contienen un 1.

Interpreta un número entero binario

De derecha a izquierda, los valores posicionales son 1, 2, 4, 8, 16, 32, 64, 128, y así sucesivamente. Cada uno es el doble del anterior porque 20=1, 21=2 y 22=4.

Para 1011012, alinea los seis bits con sus valores posicionales:

Valor posicional32168421
Bit101101

El valor es 32+8+4+1=45. Un cero no aporta nada, pero mantiene los demás dígitos en las posiciones correctas. Los ceros iniciales no cambian el valor: 00101101 también es 45.

El bit situado más a la izquierda es el bit más significativo, o MSB. El situado más a la derecha es el bit menos significativo, o LSB. Todos los valores posicionales salvo el último son pares, por lo que un entero binario es impar exactamente cuando su LSB es 1.

Convierte restando potencias de dos

Para escribir 156 en binario, empieza por la mayor potencia de dos que quepa: 128. Réstala y quedan 28. Los valores 64 y 32 no caben, así que ambas posiciones reciben 0. Toma 16 y quedan 12; toma 8 y quedan 4; toma 4 y queda 0. Las posiciones no usadas de 2 y 1 reciben 0.

En orden posicional, el resultado es 156=100111002. Comprueba sumando los valores posicionales elegidos: 128+16+8+4=156. Saltarse una columna no usada desplazaría todos los bits posteriores y cambiaría el número.

El método de resta funciona porque cada valor posicional binario puede usarse como máximo una vez. Tras tomar la mayor potencia que quepa, el resto es menor que esa potencia. Continúa descendiendo por todas las posiciones, incluidas las de valor cero, hasta completar la posición de las unidades. Así, los bits elegidos se alinean con potencias distintas en vez de formar una lista de potencias sin posiciones.

Convierte mediante divisiones sucesivas

Otro método divide entre 2 sucesivamente. Conserva el cociente para la siguiente división y anota el resto:

NúmeroCocienteResto
156780
78390
39191
1991
941
420
210
101

Lee los restos de abajo arriba para obtener 10011100. El primer resto corresponde a la posición de las unidades, por lo que leer hacia abajo invierte el orden posicional. Aquí produciría 00111001, que es 57.

Mantén visible la base

El subíndice de 102 indica base 2, así que su valor es dos. Los mismos dígitos en 1010 significan diez. El binario suele leerse dígito a dígito: «uno cero». El recuento sigue 0, 1, 10, 11, 100, 101, 110, 111, 1000; una columna lleva una unidad a la siguiente al llegar a 2. Una cadena de ocho unos es 28−1=255. Añadir un cero al final desplaza todas las posiciones hacia la izquierda y duplica el valor: 101 pasa a ser 1010, de cinco a diez.

Puntos clave

  • Suma las potencias de dos cuyos bits sean 1.
  • Los ceros iniciales conservan el valor; omitir posiciones internas no.
  • Lee los restos de las divisiones sucesivas del último al primero.
  • Un número entero es impar exactamente cuando su bit menos significativo es 1.
  • Añadir un cero al final duplica un entero binario sin límite de ancho.

1.3 El sistema hexadecimal como binario legible

El sistema hexadecimal, o hex, escribe los números en base 16. Sus dígitos son 0–9 seguidos de A, B, C, D, E y F, que significan de 10 a 15. Un solo dígito hexadecimal puede describir cualquier grupo posible de cuatro bits, lo que facilita la lectura de patrones binarios largos.

Relaciona cuatro bits con un dígito

Como 16=24, cada posición hexadecimal corresponde exactamente a cuatro posiciones binarias:

HexadecimalBinarioHexadecimalBinario
0000081000
1000191001
20010A1010
30011B1011
40100C1100
50101D1101
60110E1110
70111F1111

Para pasar de binario a hexadecimal, agrupa desde la derecha. El patrón 10011100 pasa a ser 1001 1100, o 0x9C. Si queda un grupo más corto a la izquierda, añade ceros iniciales: 101101 pasa a ser 0010 1101, o 0x2D. Agruparlo desde la izquierda como 1011 01 colocaría los dígitos en posiciones incorrectas.

Para volver a binario, desarrolla cada dígito en cuatro bits. Así, 0x3E8 pasa a ser 0011 1110 1000. Conserva los cuatro bits dentro de cada grupo, aunque un grupo empiece por ceros. Solo pueden eliminarse sin cambiar el valor los ceros situados al extremo izquierdo del número completo.

Usa los valores posicionales de base 16

De derecha a izquierda, los valores posicionales hexadecimales son 1, 16, 256 y 4096. Multiplica el valor de cada dígito por su valor posicional y después suma. Para 0x2F, el cálculo es 2×16+15=47. Para 0x3E8:

3×256+14×16+8=768+224+8=1000

La conversión de decimal a hexadecimal también funciona mediante divisiones sucesivas, ahora entre 16. Para 1000, el primer cociente es 62 con resto 8. Dividir 62 da cociente 3 con resto 14, que se escribe E. Dividir 3 da cociente 0 con resto 3. Lee los restos de abajo arriba: 3, E, 8.

La agrupación funciona por el valor posicional, no solo por una tabla de correspondencias. En un número hexadecimal de dos dígitos, el cuarteto de bits izquierdo aporta su valor multiplicado por 16 y el derecho aporta su valor multiplicado por 1. En binario, desplazar un cuarteto cuatro posiciones hacia la izquierda también multiplica su valor por 16. Ese factor común permite interpretar ambos grupos de forma independiente sin convertir antes el número completo a decimal.

Reconoce los usos habituales

Un byte tiene dos cuartetos de bits, así que son exactamente dos dígitos hexadecimales, de 0x00 a 0xFF. Un visor de bytes puede mostrar un archivo largo en hexadecimal ocupando la cuarta parte que en binario y manteniendo visibles los límites de los grupos.

Los colores web como #FF8000 usan pares de dígitos hexadecimales para rojo, verde y azul. Las direcciones de memoria y los puntos de código Unicode como U+00E9 también usan hexadecimal. Una dirección MAC como 3C:22:FB:9A:01:7E escribe seis bytes como doce dígitos hexadecimales, con separadores entre los bytes.

El prefijo 0x, un subíndice de base como 2F16 o el # de un código de color identifican la notación. La computadora almacena los mismos bits independientemente de la notación que use una persona. En particular, 0x10 significa dieciséis. El valor quince es el dígito único F; escribir «15» ocupa dos posiciones hexadecimales y significa veintiuno.

Puntos clave

  • El sistema hexadecimal usa 0–9 y A–F; A–F representan 10–15.
  • Agrupa el binario de cuatro en cuatro desde la derecha para convertirlo a hexadecimal.
  • Un byte son exactamente dos dígitos hexadecimales.
  • Los valores posicionales hexadecimales son potencias de 16; cambiar la notación no cambia los bits almacenados.
2

Almacena números enteros con un ancho fijo

Un número fijo de bits solo puede almacenar un conjunto fijo de números enteros. La interpretación elegida decide si todos esos patrones representan valores no negativos o si algunos representan valores negativos. Interpretarás el mismo byte de ambas formas, elegirás anchos que cubran un rango necesario y seguirás lo que ocurre en sus extremos. El complemento a dos también explica cómo los valores negativos conservan su significado al aumentar su ancho.

2.1 Valores sin signo y desbordamiento

Un entero sin signo representa un número entero no negativo. Todos sus bits tienen los pesos binarios positivos habituales. El ancho fija cuántas posiciones hay disponibles, por lo que un byte no puede ganar un noveno bit solo porque un resultado lo necesite.

Halla el rango

Para n bits, hay 2n patrones. Empezar en cero da el rango 0 a 2n−1. El valor máximo tiene un 1 en todas las posiciones:

AnchoRango sin signo
8 bits0–255
16 bits0–65 535
32 bits0–4 294 967 295

El número de valores disponibles y el valor máximo difieren en uno. Ocho bits permiten 256 opciones, pero el propio 256 necesita nueve posiciones, 1 0000 0000.

Un valor almacenado completa su ancho con ceros iniciales. Por ejemplo, 45 en 16 bits es 0000000000101101, o 0x002D. Esos ceros identifican el ancho sin cambiar el valor. Un número negativo no tiene representación sin signo, sea cual sea el ancho elegido.

Elige suficientes posiciones

Un rango de edades de 0 a 150 cabe en 8 bits porque 150 es menor que 255. Un recuento de 0 a 100 000 contiene 100 001 valores posibles. Dieciséis bits ofrecen solo 65 536 patrones. Diecisiete ofrecen 131 072, por lo que 17 es el ancho mínimo matemático. Un programa que use los anchos habituales de 8, 16, 32 y 64 elegiría 32 bits.

El mismo razonamiento se aplica a cualquier contador acotado: comprueba el mayor valor que el contador debe almacenar realmente, incluidos ambos extremos. Un rango de 0 a 256 necesita 257 patrones y, por tanto, no cabe en un byte.

Una comprobación útil de los límites compara anchos consecutivos. El máximo sin signo de 8 bits es 255 y el de 9 bits es 511. Añadir un bit duplica el número de patrones; el máximo pasa a ser el doble del máximo anterior más uno. Esta distinción importa cuando un requisito coincide exactamente con una potencia de dos: ese extremo necesita una nueva posición, aunque el ancho anterior tenga esa misma cantidad de patrones.

Sigue un resultado fuera del rango

El desbordamiento significa que un resultado no cabe en la representación elegida. Si un cálculo de 8 bits conserva solo los ocho bits menos significativos, 255 más 1 produce 1 0000 0000 y almacena 00000000: cero. La posición adicional se descarta.

Para 200 más 100, el resultado matemático es 300. El ancho conserva el resto tras un ciclo completo de 256 patrones: 300−256=44. El byte almacenado es 00101100. Este comportamiento se llama desbordamiento con retorno cíclico. No cambia el hecho aritmético de que 200 más 100 es 300; describe lo que retiene el almacenamiento limitado.

El comportamiento ante el desbordamiento depende del sistema. Algunas operaciones vuelven al inicio de forma cíclica, otras señalan un error y algunos tipos numéricos aumentan su capacidad. Un cálculo que pregunte por el retorno cíclico debe especificar ese comportamiento antes de que descartes los bits más significativos.

Observa los anchos fijos en los datos

Una dirección IPv4 tiene 32 bits, lo que ofrece unos 4,3 mil millones de patrones posibles. Ese espacio finito de direcciones contribuyó a la necesidad de un sistema de direccionamiento más amplio. Un canal de color RGB habitual tiene 8 bits, lo que explica su escala de intensidad de 0–255. En ambos casos, el máximo depende del ancho; escribir más cifras decimales no añade capacidad de almacenamiento.

Puntos clave

  • Un entero sin signo de n bits va de 0 a 2ⁿ − 1.
  • Cuenta ambos extremos al elegir un ancho.
  • Los ceros iniciales completan un ancho sin cambiar un valor sin signo.
  • El desbordamiento significa que un resultado queda fuera del rango representable.
  • Cuando un sistema conserva solo los n bits menos significativos, los valores sin signo vuelven al inicio en ciclos de 2ⁿ.

2.2 Enteros negativos en complemento a dos

Un entero negativo necesita una regla de representación, no solo un signo menos escrito junto a un byte. El complemento a dos da un peso negativo al bit más significativo. Las demás posiciones conservan sus pesos positivos, por lo que cada patrón tiene un valor con signo y el cero tiene un solo patrón.

Compara dos interpretaciones con signo

Un esquema más sencillo, signo y magnitud, usa el bit más significativo solo para el signo y los restantes para la magnitud. En 8 bits, +5 es 00000101 y −5 es 10000101. Tiene dos ceros, 00000000 y 10000000, y sumar números de distinto signo requiere reglas adicionales.

En complemento a dos de 8 bits, los pesos son −128, 64, 32, 16, 8, 4, 2 y 1. Así, 11010011 significa −128+64+16+2+1=−45. Interpretar los otros siete bits como una magnitud de 83 daría −83, que corresponde a otra representación.

AnchoRango en complemento a dos
8 bits−128–127
16 bits−32 768–32 767
32 bits−2 147 483 648–2 147 483 647

En general, el rango va de −2n−1 a 2n−1−1. El cero y los valores positivos se escriben como en binario habitual con un 0 inicial. Todos los bits a uno representan −1.

Escribe un valor negativo

Para cambiar el signo de un valor representable, invierte cada bit y suma 1, manteniendo fijo el ancho. Para codificar −45 en 8 bits:

  1. Escribe +45 como 00101101.
  2. Invierte los ocho bits: 11010010.
  3. Suma 1: 11010011, o 0xD3.

Detenerse tras la inversión produce −46. Aplicar el proceso completo a 11010011 vuelve a dar 00101101, recuperando +45.

Otra vía codifica −x como el valor sin signo 2n−x. Aquí, 256−45=211, cuya representación binaria es 11010011. Por tanto, el byte significa 211 sin signo o −45 con signo. Los bits no han cambiado; el tipo sí.

La inversión seguida de la suma también tiene una explicación aritmética. Para un valor positivo x de n bits, la inversión lo transforma en el valor sin signo 2n−1−x. Sumar uno da 2n−x, cuya interpretación con signo es −x. Esto relaciona el método bit a bit con el método de resta y explica por qué omitir el 1 final da un valor negativo incorrecto.

Conserva un valor con signo en más bits

La extensión de signo copia el bit más significativo en las posiciones nuevas de la izquierda. −3 en cuatro bits es 1101; en 8 bits es 11111101. Su peso negativo más significativo y los pesos positivos añadidos siguen sumando −3. Completarlo con ceros daría 00001101, o +13. Los valores positivos se extienden con ceros: 0011 pasa a ser 00000011.

Reconoce los extremos

El complemento a dos permite usar la suma binaria habitual para resultados que caben en el rango. En 4 bits, 0101 más 1101, que significa 5 más −3, da 1 0010. Conservar los cuatro bits menos significativos da 0010, o 2. Esto permite que el mismo hardware básico de suma maneje valores con signo y sin signo.

Un resultado fuera del rango es distinto: 127 más 1 en 8 bits deja 10000000, que se interpreta como −128. Además, −128 no tiene un opuesto positivo en 8 bits. Invertir 10000000 y sumar 1 devuelve 10000000 porque +128 queda fuera del rango. Amplía la representación antes de obtener ese valor positivo.

Puntos clave

  • El bit más significativo tiene peso −2ⁿ⁻¹ en complemento a dos de n bits.
  • El complemento a dos tiene un solo cero y un valor negativo más que valores positivos.
  • Cambia el signo invirtiendo cada bit y sumando 1 dentro del ancho fijo.
  • La extensión de signo copia el bit más significativo en las posiciones añadidas.
  • El valor más negativo no tiene un opuesto positivo en el mismo ancho.
  • El mismo patrón puede tener significados distintos con signo y sin signo.
3

Almacena fracciones y valores en coma flotante

Las posiciones enteras se prolongan a la derecha de la coma binaria como mitades, cuartos y fracciones menores. Algunas fracciones decimales terminan en binario, mientras que otras requieren un patrón infinito. La coma fija reserva un número determinado de posiciones fraccionarias; la coma flotante almacena una escala además de un significando. Interpretar estos formatos permite comprender tanto su amplio rango como sus errores de redondeo, incluido el conocido resultado de sumar 0,1 y 0,2.

3.1 Fracciones binarias y coma fija

La primera posición después de la coma binaria vale un medio. Cada posición posterior vale la mitad de la anterior: un cuarto, un octavo, un dieciseisavo, y así sucesivamente. Un 1 aporta esa fracción; un 0 la omite. Las posiciones enteras de la izquierda conservan sus potencias de dos habituales.

Interpreta y construye una fracción binaria

Para 101,1012, la parte entera es 4 más 1. La parte fraccionaria es un medio más un octavo, lo que da 4+1+0,5+0,125=5,625.

Para convertir una fracción decimal, multiplícala por 2 sucesivamente. La parte entera de cada resultado es el siguiente dígito binario; conserva solo la parte fraccionaria para la siguiente multiplicación. Para 0,375:

  1. 0,375×2=0,75, por lo que el primer bit es 0.
  2. 0,75×2=1,5, por lo que el siguiente bit es 1; conserva 0,5.
  3. 0,5×2=1,0, por lo que el siguiente bit es 1 y el proceso termina.

El resultado es 0,0112. Su valor es un cuarto más un octavo, o 0,375. Estos bits se leen en el orden en que se obtienen, a diferencia de los restos en la división de números enteros.

Decide si el desarrollo termina

Reduce la fracción a su forma irreducible. Tiene un desarrollo binario finito exactamente cuando su denominador es una potencia de 2. Valores como 0,5, 0,25, 0,75 y 0,375 cumplen esa condición. Por ejemplo, 0,375 es 3/8 y ocho es una potencia de dos.

El decimal 0,1 es 1/10. Su denominador incluye un factor de 5, por lo que su desarrollo binario se repite: 0,0001100110011…2. Igual que un tercio no puede terminar en decimal, un décimo no puede terminar en binario. Por tanto, la forma escrita corta «0,1» necesita una aproximación cuando solo hay un número limitado de posiciones binarias disponibles. El mismo problema afecta a 0,2 y 0,3.

La regla del denominador se deduce de las propias posiciones. Una cadena finita que termine en la posición fraccionaria f puede escribirse como un entero dividido entre 2f. Reducir esa fracción puede eliminar factores de dos, pero no puede introducir otro factor primo en el denominador. Por tanto, un denominador reducido que contenga cinco no puede corresponder a ninguna suma binaria finita de ese tipo.

Reserva una escala fija

Una representación en coma fija asigna un número determinado de bits a la parte fraccionaria. Con cuatro bits enteros y cuatro bits fraccionarios, 0110,1000 significa 6,5. El paso mínimo es 2−4=0,0625 y el mayor valor sin signo es 1111,1111, o 15,9375.

De forma equivalente, al entero almacenado de ocho bits se le aplica un factor de escala de 1/16. El patrón 01101000 tiene el valor sin signo 104; dividir entre 16 da 6,5. La coma forma parte de la interpretación, por lo que no necesita almacenarse como un símbolo adicional.

Mantener ocho bits en total, pero usar cinco bits enteros y tres fraccionarios, hace que el paso sea 0,125 y el máximo 31,875. Ganas rango, pero pierdes finura en el espaciado. La coma fija representa exactamente los múltiplos de su paso dentro de su rango.

Un recuento exacto de centésimas de unidad monetaria usa una idea de escala relacionada: 19,99 u.m. se convierten en el entero 1999 centésimas. Para medidas que abarcan magnitudes muy diferentes, la coma flotante almacena una escala móvil, lo que permite cubrir un rango mucho mayor que la coma fija con el mismo ancho.

Puntos clave

  • Los valores posicionales de las fracciones binarias son 1/2, 1/4, 1/8, y así sucesivamente.
  • Multiplica una parte fraccionaria por 2 y lee las partes enteras en orden.
  • Una fracción irreducible termina en binario exactamente cuando su denominador es una potencia de 2.
  • La coma fija establece un compromiso entre rango y resolución fraccionaria para un ancho total fijo.

3.2 Lee y escribe los campos de IEEE 754

La coma flotante escribe un valor en notación científica binaria. Por ejemplo, 6,25 es 110,012=1,10012×22. La parte inicial es el significando (mantisa) y el exponente determina su escala. IEEE 754 define formatos muy usados para almacenar estas partes.

Conoce los campos
FormatoTotalSignoExponenteFracciónSesgo
Simple, binary3232 bits1823127
Doble, binary6464 bits111521023

Para un valor normal, la interpretación es (−1)s×(1,f)2×2E−sesgo. Aquí, s es el bit de signo, E es el exponente almacenado sin signo y f es el campo de fracción. Un bit de signo de 0 significa positivo; 1 significa negativo. Cambiar solo el bit de signo cambia el signo de un valor en coma flotante.

El exponente almacenado es igual al exponente real más el sesgo. En precisión simple, el exponente 2 se convierte en 129, o 10000001; el exponente −3 se convierte en 124, o 01111100. Los exponentes normales almacenados van de 1 a 254 y representan de −126 a 127.

Un significando binario normal siempre empieza por 1, así que el formato omite ese bit implícito. Solo los bits posteriores a la coma entran en el campo de fracción. Esto ofrece 24 dígitos binarios significativos en precisión simple y 53 en doble.

Codifica −6,25 paso a paso

Primero normaliza su magnitud: 110,012=1,10012×22. Después completa los campos:

  1. Valor negativo: signo 1.
  2. Exponente 2: suma 127 para obtener 129, escrito 10000001.
  3. Fracción ,1001: almacena 1001 seguido de 19 ceros.

El resultado es 1 10000001 10010000000000000000000, o 0xC0C80000. La fracción se completa por la derecha porque estas posiciones continúan después de la coma. Almacenar el 1 inicial desplazaría el significado de la fracción.

Un exponente real negativo lleva la escala por debajo de uno. Para 0,15625, la forma binaria es 0,001012=1,012×2−3. Su signo en binary32 es 0 y su exponente almacenado es 124, o 01111100. La fracción empieza por 01 y se completa por la derecha. El 1 implícito sigue formando parte del significando normalizado, aunque el número completo sea menor que uno.

Decodifica un patrón

El patrón de precisión simple 0x41200000 se divide en 0 10000010 01000000000000000000000. El signo es positivo. El campo de exponente es 130, así que resta 127 para obtener 3. Recupera el 1 implícito para obtener 1,012=1,25. Por último, 1,25×23=10.

Comprueba primero los exponentes reservados

La fórmula para valores normales no describe todos los patrones:

Campo de exponenteCampo de fracciónSignificado
Todos cerosCero+0 o −0, según el signo
Todos cerosDistinto de ceroUn valor subnormal, con 0 inicial
Todos unosCeroInfinito positivo o negativo
Todos unosDistinto de ceroNaN, «no es un número»

Los subnormales representan valores muy pequeños sin el 1 implícito. NaN puede resultar de una operación numérica no válida, como 0 dividido entre 0. IEEE 754-2019 define estos formatos.

Puntos clave

  • La precisión simple tiene campos de 1, 8 y 23 bits; la doble tiene 1, 11 y 52.
  • Resta el sesgo del exponente al decodificar; súmalo al codificar.
  • Los valores normales tienen un 1 inicial que no se almacena.
  • Completa el campo de fracción con ceros por la derecha.
  • Los campos de exponente formados solo por ceros o solo por unos tienen significados especiales.
  • Los campos de signo y exponente de coma flotante no forman un entero en complemento a dos.

3.3 Rango de representación, precisión y error de redondeo

Un formato de coma flotante puede cubrir un rango enorme sin representar todos los valores de ese rango. El exponente controla la escala; el campo de fracción controla cuántos bits significativos distinguen valores cercanos. El rango de representación y la precisión responden a preguntas diferentes.

Compara la precisión simple y la doble

La precisión simple alcanza aproximadamente 3,4×1038 y tiene unas siete cifras decimales significativas. Su menor valor normal positivo es aproximadamente 1,18×10−38. La doble alcanza aproximadamente 1,8×10308, tiene unas 15–16 cifras decimales significativas y su menor valor normal positivo es aproximadamente 2,2×10−308. Los valores subnormales se extienden por debajo del mínimo normal de cada formato.

Las cifras significativas se cuentan desde la primera cifra relevante, no desde la coma decimal. Un exponente grande no crea más bits de fracción. En precisión simple, la separación por encima de 1 es 2−23≈1,19×10−7. Entre 224 y 225 la separación es 2, por lo que el entero 16 777 217 no está disponible, aunque sea mucho menor que el máximo valor finito.

Redondea a un valor que quepa

La regla predeterminada de IEEE 754 es redondeo al más cercano, al par en caso de empate. Elige el valor representable más cercano; si está exactamente a medio camino, elige aquel cuyo último bit conservado del significando sea par. Así, 16 777 217 se redondea a 16 777 216 en precisión simple.

La diferencia entre el valor deseado y el almacenado es el error de redondeo. En precisión simple, 0,1 se almacena como 0,100000001490116119384765625. En doble es aproximadamente 0,10000000000000000555. Una mayor precisión reduce este error, pero no puede hacer que termine un desarrollo periódico.

Comprende un resultado conocido

Con la aritmética habitual de precisión doble de IEEE 754, sumar 0,1 y 0,2 produce un resultado almacenado que suele mostrarse como 0.30000000000000004. Difiere de la aproximación almacenada de 0,3, por lo que 0.1 + 0.2 == 0.3 es falso en lenguajes como Python y JavaScript. Para resultados de mediciones, compara la diferencia con una tolerancia elegida según la escala y el propósito de la tarea.

Muchos valores son exactos. La precisión doble representa exactamente todos los enteros desde −253 hasta 253. Valores como 0,5 y 0,375 también tienen formas binarias cortas que caben tanto en su significando como en su rango de exponentes.

Elige un tipo numérico adecuado

Los enteros son adecuados para recuentos e identificadores. Para importes financieros exactos convienen cantidades enteras de unidades monetarias menores, como centésimas de unidad monetaria, o un tipo numérico decimal. La coma flotante suele ser adecuada para medidas y cálculos científicos. Una magnitud demasiado grande para el formato puede desbordarse hasta infinito; con la regla de redondeo predeterminada, 1039 en precisión simple se convierte en infinito positivo. Los resultados muy pequeños pueden convertirse en subnormales o redondearse a cero.

Las convenciones de presentación son independientes del almacenamiento. Las formas «3.14» y «3,14» pueden nombrar el mismo número en distintas configuraciones regionales. Un lector de texto debe conocer esa convención; de lo contrario, podría rechazar la coma o interpretar el valor como 314. Cambiar el separador mostrado no mejora la precisión binaria.

Puntos clave

  • El rango controla la magnitud; la precisión controla la separación entre valores cercanos.
  • Las separaciones en coma flotante aumentan al crecer la magnitud.
  • La regla predeterminada redondea al más cercano y, en empates exactos, al valor con último bit par.
  • Una fracción decimal corta puede necesitar redondeo en binario.
  • Elige almacenamiento entero, decimal o en coma flotante según la tarea.
4

Convierte caracteres en códigos y bytes

El texto necesita un acuerdo entre el software que lo escribe y el que lo lee. ASCII asigna códigos numéricos a un conjunto pequeño de caracteres. Unicode proporciona un espacio de códigos común para muchos sistemas de escritura, mientras que codificaciones como UTF-8 determinan los bytes concretos. Distinguir un carácter mostrado de un punto de código y de un byte te ayuda a calcular tamaños de texto y a explicar por qué un archivo guardado correctamente puede aparecer ilegible.

4.1 Códigos ASCII y sus limitaciones

Para almacenar texto, un sistema asigna códigos numéricos a los caracteres y escribe esos números como bits. Un código de carácter solo funciona cuando quien lee usa el mismo acuerdo que quien escribe. El byte de una letra es una etiqueta codificada; no es una imagen diminuta de esa letra.

Interpreta la tabla ASCII

ASCII, el Código Estándar Estadounidense para el Intercambio de Información, se publicó por primera vez en 1963. Usa 7 bits para 128 códigos, numerados de 0–127. En el almacenamiento basado en bytes, un código ASCII suele ocupar un byte con un 0 inicial.

CódigosSignificado
0–31 y 127Caracteres de control
32Espacio
48–57Dígitos «0»–«9»
65–90Mayúsculas «A»–«Z»
97–122Minúsculas «a»–«z»

Los signos de puntuación ocupan los huecos. Los códigos 32–126 forman 95 caracteres imprimibles, incluido el espacio. Los controles afectan al tratamiento del texto sin imprimir un símbolo visible: la tabulación es 9, el salto de línea es 10 y el retorno de carro es 13.

Codifica una cadena corta

El texto formado por «H», «i» y «!» tiene tres caracteres. Sus códigos decimales son 72, 105 y 33; en hexadecimal son 0x48, 0x69 y 0x21. Como bytes completos, el texto se convierte en 01001000 01101001 00100001. El signo de exclamación necesita un código igual que las letras.

El código de una letra ASCII minúscula es 32 unidades mayor que el de su mayúscula. «A» es 65, o 01000001, mientras que «a» es 97, o 01100001. Ese único bit cambiado explica la diferencia. El orden también sitúa todas las mayúsculas antes que todas las minúsculas. Por tanto, una ordenación sencilla basada en códigos coloca «Zorro» antes que «abeja»; no sigue el orden habitual de un diccionario.

Distingue un dígito de un número

El carácter «7» tiene el código decimal 55 y el byte 00110111. El entero 7 tiene el byte 00000111. Para recuperar el valor numérico de un dígito a partir de su código ASCII, resta 48, el código de «0»: 55−48=7. Esto funciona porque los diez códigos de dígitos son consecutivos.

El almacenamiento depende de la representación elegida. El texto «2026» necesita cuatro bytes ASCII, uno por dígito. El entero 2026 cabe en dos bytes como valor sin signo de 16 bits. El texto conserva la secuencia de caracteres; un entero representa el valor numérico. Por ejemplo, un identificador textual puede conservar ceros iniciales que un entero no distingue.

Para codificar una cadena más larga, procesa cada carácter en orden, incluidos espacios, signos de puntuación y controles. La decodificación invierte la consulta, un código cada vez, con la misma tabla. La secuencia importa: intercambiar dos códigos válidos puede seguir produciendo ASCII válido, pero produce un texto diferente. Que una consulta tenga éxito confirma que los códigos se reconocen, no que tengan el orden o el significado deseados.

Comprende por qué las páginas de códigos causaban problemas

ASCII no tiene letras con signos diacríticos como «é», «ñ» o «ü», ni caracteres griegos, cirílicos, árabes o chinos. Las páginas de códigos posteriores de 8 bits usaban los valores 128–255 para símbolos adicionales, pero no coincidían en las incorporaciones.

Por ejemplo, el byte 0xE9 significa «é» en Latin-1, pero «й» en Windows-1251. Windows-1252 es otra página de códigos habitual. Por tanto, un valor de byte no puede identificar un carácter ajeno a ASCII sin conocer la codificación. Usar la tabla incorrecta puede producir símbolos aparentemente legibles que siguen siendo el texto equivocado.

Puntos clave

  • ASCII define 128 códigos con 7 bits, normalmente almacenados uno por byte.
  • Los caracteres imprimibles incluyen espacios y puntuación; los controles tienen otras funciones.
  • Los caracteres de dígitos tienen códigos distintos de los enteros que nombran.
  • Distintas páginas de códigos antiguas pueden asignar caracteres diferentes al mismo byte.

4.2 Puntos de código Unicode y codificaciones UTF

Unicode asigna a los caracteres de los sistemas de escritura del mundo un conjunto común de números llamados puntos de código. «A» es U+0041, «é» es U+00E9, «Ж» es U+0416, «中» es U+4E2D y «😀» es U+1F600. La notación U+ usa hexadecimal con al menos cuatro dígitos.

Distingue un punto de código de sus bytes

El espacio de códigos va de U+0000 a U+10FFFF, es decir, 1 114 112 posiciones, con más de 150 000 caracteres asignados. Un punto de código identifica un carácter o una posición reservada; una codificación determina su representación en bytes.

CodificaciónAlmacenamiento de un punto de código de carácter válido
UTF-81–4 bytes
UTF-162 bytes hasta U+FFFF; 4 bytes por encima
UTF-324 bytes

El intervalo de sustitutos U+D800–U+DFFF está reservado para el mecanismo de emparejamiento de UTF-16; los sustitutos aislados no son caracteres válidos para codificar en estas formas. Un par de unidades de código UTF-16 representa un punto de código suplementario. Por ejemplo, «😀» es D83D DE00 en UTF-16.

Interpreta los intervalos de bytes de UTF-8

UTF-8 conserva ASCII: U+0000–U+007F usan un byte. U+0080–U+07FF usan dos; los puntos de código de caracteres válidos de U+0800–U+FFFF usan tres; U+10000–U+10FFFF usan cuatro. Esto hace que el texto inglés en ASCII sea compatible byte por byte con UTF-8.

Un carácter de un solo byte empieza por 0. Los caracteres más largos empiezan por 110, 1110 o 11110 para dos, tres o cuatro bytes. Cada byte de continuación empieza por 10. Los bits restantes contienen el punto de código.

Para «é», U+00E9, el valor de 11 bits es 00011101001. Divídelo en cinco bits y seis bits: 00011 y 101001. Insértalos en 110xxxxx 10xxxxxx para obtener 11000011 10101001, o C3 A9. El punto de código 00E9 no es por sí mismo la secuencia de bytes UTF-8.

La codificación y la decodificación también deben respetar los prefijos de los bytes. Un byte de continuación UTF-8 no es un byte ASCII independiente: sus primeros dos bits son 10, por lo que pertenece al interior de una secuencia de carácter más larga. Eliminar parte de un carácter de varios bytes al aplicar un límite de bytes puede dejar una secuencia incompleta. Por tanto, la longitud de almacenamiento y los límites por los que puede dividirse el texto están relacionados.

Cuenta los elementos adecuados

«café» tiene cuatro caracteres visibles, pero cinco bytes UTF-8: 63 61 66 C3 A9. «€» usa E2 82 AC, tres bytes; «中» usa E4 B8 AD, también tres; «😀» usa F0 9F 98 80, cuatro. Por tanto, un límite de bytes puede admitir menos caracteres de lo que su cifra sugiere.

Un carácter visible también puede contener varios puntos de código. «é» puede ser U+00E9 o «e» seguido de U+0301, un acento agudo combinante. La segunda forma usa tres bytes UTF-8, 65 CC 81. La normalización Unicode convierte secuencias equivalentes a una forma común para compararlas. El emoji visible «👍🏽» contiene dos puntos de código, U+1F44D y U+1F3FD, que suman ocho bytes UTF-8.

Diagnostica el texto ilegible por codificación incorrecta

«café» en UTF-8 leído como Windows-1252 se convierte en «café»: C3 y A9 se tratan como caracteres separados. Esto es texto ilegible por una codificación incorrecta, causado por decodificar con la codificación equivocada. Una decodificación correcta puede recuperar el texto mientras los bytes originales permanezcan intactos. Una página web puede declarar su codificación con <meta charset="utf-8">.

Puntos clave

  • Un punto de código identifica un carácter; una codificación elige sus bytes.
  • UTF-8 usa de uno a cuatro bytes y conserva ASCII sin cambios.
  • Los bytes de continuación de UTF-8 empiezan por 10.
  • Un carácter visible, un punto de código y un byte son unidades de recuento diferentes.
  • La normalización puede unificar secuencias de caracteres equivalentes.
  • Decodificar con una codificación equivocada puede producir texto ilegible.
5

Mide imágenes y sonido en bits

Las imágenes y las grabaciones convierten los detalles visuales y sonoros en números. Un mapa de bits almacena una cuadrícula de valores de píxeles; el audio muestreado almacena medidas tomadas a intervalos regulares. Su almacenamiento depende de cuántos valores se conservan y cuántos bits necesita cada valor. Estas decisiones también afectan a los detalles que se conservan. Los dibujos vectoriales y MIDI siguen otro enfoque: describen formas o notas mediante instrucciones que un dispositivo convierte después en una imagen o en sonido.

5.1 Píxeles, RGB, paletas y transparencia

Un mapa de bits, también llamado imagen ráster, es una cuadrícula de píxeles. Cada píxel contiene un valor de color. El ancho y el alto indican la resolución de la imagen: 1920 por 1080 significa 1920×1080=2 073 600 píxeles. El número de píxeles describe la cuadrícula, no su tamaño impreso en metros.

Asigna suficientes bits a cada píxel

La profundidad de color es el número de bits usados para el color de un píxel. Una profundidad de k bits permite 2k códigos posibles. Un bit puede distinguir dos colores. Una escala de grises de ocho bits puede distinguir 256 intensidades, normalmente de 0 para negro a 255 para blanco.

Una imagen sencilla de 3 por 3 puede usar 1 para negro y 0 para blanco. Un signo más negro se representa mediante las filas 010, 111 y 010. Nueve píxeles de un bit cada uno necesitan nueve bits de información de píxeles. El almacenamiento real del archivo puede incluir relleno y otra información además de esos bits.

Mezcla luz con RGB

RGB almacena intensidades de luz roja, verde y azul. Con 8 bits por canal, cada intensidad va de 0 a 255 y un píxel usa 24 bits. El número de colores posibles es 2563=224=16 777 216.

Valores RGBColor
(0, 0, 0)Negro
(255, 255, 255)Blanco
(255, 0, 0)Rojo
(0, 0, 255)Azul
(255, 255, 0)Amarillo

RGB es una mezcla aditiva de luz. Combinar luz roja y verde produce amarillo. Una predicción basada en mezclar pintura usa un proceso diferente y da un modelo incorrecto para una pantalla.

Interpreta códigos de color hexadecimales

Un color web usa #RRGGBB: dos dígitos hexadecimales para rojo, después verde y después azul. #FF8000 significa (255, 128, 0), un naranja. #808080 significa (128, 128, 128), un gris medio; valores iguales en los canales producen un gris. #0000FF da el valor máximo de azul con rojo y verde a cero.

Cada par es un byte. Así, FF es 255, no un par de intensidades de color separadas. El # identifica el código RGB completo y no ocupa un canal.

Los modelos RGB y de paleta resuelven de forma distinta la consulta de un píxel. En RGB directo, leer el píxel proporciona inmediatamente las intensidades de sus tres canales. En color indexado, leer el píxel proporciona un número de entrada y una segunda consulta aporta las intensidades. Por tanto, cambiar una entrada de la paleta puede cambiar muchos píxeles visibles que comparten el mismo índice, aunque sus índices almacenados sigan sin cambios.

Almacena un índice de paleta

Cuando una imagen usa pocos colores, puede guardar una paleta de colores, una tabla con los colores seleccionados. Entonces un píxel almacena un índice de esa tabla. Una paleta de 16 colores necesita cuatro bits por píxel porque cuatro bits distinguen 16 entradas. La propia paleta también ocupa almacenamiento. GIF usa hasta 256 colores de paleta, lo que permite un índice de 8 bits por píxel.

Añade transparencia

Un canal alfa describe la opacidad. Una escala habitual de 8 bits usa 0 para totalmente transparente y 255 para totalmente opaco, con valores intermedios para transparencia parcial. Añadir ese canal a RGB de 24 bits da RGBA de 32 bits. Alfa es independiente de rojo, verde y azul: un píxel totalmente transparente puede seguir teniendo valores de color almacenados que no se muestran en la imagen final.

Puntos clave

  • Un mapa de bits almacena una cuadrícula de valores de píxeles.
  • La profundidad de color determina el número de códigos de color disponibles por píxel.
  • RGB habitual usa tres canales de 8 bits, que suman 24 bits.
  • Un índice de paleta selecciona un color de una tabla.
  • Un canal alfa añade información de opacidad; alfa de 8 bits convierte RGB en RGBA de 32 bits.

5.2 Calcula el almacenamiento de imágenes y vídeo

Los datos de píxeles de un mapa de bits sin comprimir aumentan con el número de píxeles y los bits por píxel. Mantener las unidades en cada paso ayuda a distinguir la cantidad de información del tamaño en bytes que indica un visor de archivos.

Calcula los datos de píxeles

Usa bits=ancho×alto×bits por pıˊxel. Divide entre 8 para obtener bytes. El ancho y el alto deben multiplicarse porque cada fila contiene un ancho completo de píxeles.

Para 1920 por 1080 a 24 bits por píxel, calcula primero 2 073 600 píxeles. Multiplica por 24 para obtener 49 766 400 bits y después divide entre 8 para obtener 6 220 800 bytes. Son unos 6,2 MB, o 5,93 MiB. Cambiar la unidad no cambia los datos de píxeles subyacentes.

Para 640 por 480 en escala de grises de 8 bits, hay 307 200 píxeles. Ocho bits cada uno dan 2 457 600 bits; dividir entre 8 da 307 200 bytes, unos 307 kB. Aquí, un byte por píxel hace que el número final de bytes sea igual al número de píxeles.

Predice los cambios antes de calcular

Duplicar el ancho duplica los píxeles de cada fila. Duplicar el alto duplica las filas. Por tanto, duplicar ambos multiplica por cuatro el número de píxeles y el almacenamiento. Aumentar la profundidad de 8 a 24 bits por píxel triplica el almacenamiento con la misma resolución. Estos factores se multiplican si cambian ambos.

El cálculo sin comprimir da los datos de píxeles, no necesariamente un archivo de imagen completo. Un archivo también almacena metadatos, como el ancho, el alto, la profundidad de color y el formato. Una foto puede registrar los ajustes de la cámara, la fecha y la ubicación. Las tablas de paleta, las cabeceras, el relleno y la compresión también pueden cambiar el tamaño final en bytes.

Para profundidades inferiores a ocho bits, calcula toda la carga útil en bits antes de convertir. Una imagen de un bit de 100 por 60 contiene 6000 bits de píxeles, o 750 bytes empaquetados. Tratar cada píxel como un byte multiplicaría esa carga útil por ocho. Si un formato añade relleno a cada fila hasta un límite determinado, ese relleno debe sumarse por separado; no es un cambio de profundidad de color.

Amplía el cálculo al vídeo

Un vídeo presenta una secuencia de imágenes llamadas fotogramas. A 30 fotogramas por segundo, un vídeo RGB de 1920 por 1080 necesita 6 220 800×30=186 624 000 bytes de datos de imagen sin comprimir cada segundo, unos 187 MB/s. Multiplicar por la duración da el total de datos de imagen. El sonido añade su propio almacenamiento.

Esta tasa elevada explica por qué los archivos de vídeo habituales están comprimidos. La tasa de un vídeo comprimido es una cantidad distinta; no puede deducirse solo de la resolución.

Compara imágenes ráster y vectoriales
Mapa de bitsVectorial
Almacena una cuadrícula de valores de colorAlmacena formas e instrucciones de dibujo
Es adecuado para fotografías y texturasEs adecuado para logotipos, diagramas y contornos tipográficos
Ampliar la cuadrícula deja ver los píxelesLas formas pueden volver a dibujarse a mayor escala

Un archivo vectorial puede describir una línea de (0, 0) a (100, 50), o un círculo mediante su centro, radio y relleno. No necesita almacenar un valor de color separado para cada punto dentro del círculo. Por eso los dibujos sencillos pueden ocupar poco espacio. SVG es un formato vectorial habitual.

Una pantalla sigue necesitando píxeles. La rasterización convierte las formas en una cuadrícula de píxeles del tamaño solicitado. Escalar instrucciones vectoriales conserva la geometría de la forma; ampliar un mapa de bits existente no puede recuperar detalles que su cuadrícula original nunca registró.

Puntos clave

  • Los bits de un mapa de bits sin comprimir equivalen a ancho × alto × bits por píxel.
  • Divide los bits entre 8 antes de expresar el resultado en bytes.
  • Duplicar ambas dimensiones cuadruplica los datos de píxeles con la misma profundidad.
  • Los datos de imagen de vídeo sin comprimir equivalen a bytes por fotograma × frecuencia de fotogramas × duración.
  • Los metadatos y la compresión hacen que el tamaño del archivo difiera del cálculo de píxeles sin comprimir.
  • Los gráficos vectoriales almacenan formas que se rasterizan para mostrarlas.

5.3 Muestrea sonido y calcula el tamaño del audio

El sonido es una vibración de la presión del aire. Un micrófono lo convierte en una señal eléctrica analógica que varía continuamente. Un convertidor analógico-digital toma medidas regulares, llamadas muestras, y almacena cada una como un número.

Distingue la frecuencia temporal del detalle de la medida

La frecuencia de muestreo, medida en hercios, es el número de muestras tomadas cada segundo por canal. Una frecuencia de 44 100 Hz es 44,1 kHz. Los CD usan 44,1 kHz, las pistas de sonido de vídeo suelen usar 48 kHz y el audio de telefonía tradicional usa 8 kHz. Las muestras registran valores en esos instantes; no son un registro continuo de todos los instantes intermedios.

La profundidad de bits determina cuántos niveles puede usar cada muestra. Ocho bits ofrecen 256 niveles, 16 ofrecen 65 536 y 24 ofrecen 16 777 216. Redondear una medida a un nivel es la cuantificación. La diferencia respecto a la medida original produce un error de cuantificación que puede oírse como ruido. Más bits ofrecen niveles más finos y reducen ese error.

La frecuencia de muestreo controla el detalle temporal; la profundidad de bits controla el detalle de la amplitud medida. Aumentar una no sustituye aumentar la otra.

Capta el rango de frecuencias

El teorema del muestreo exige una frecuencia de muestreo mayor que el doble de la frecuencia máxima que se desea captar. Para captar 20 kHz, la frecuencia debe superar 40 kHz. Exactamente el doble no basta para una señal arbitraria en el límite.

A 44,1 kHz, el límite teórico está por debajo de 22,05 kHz. El margen por encima de unos 20 kHz, el límite superior aproximado del oído humano, deja espacio para un filtro contra el solapamiento espectral. Las frecuencias superiores a la mitad de la frecuencia de muestreo pueden aparecer como frecuencias falsas más bajas, lo que se llama solapamiento espectral. Un convertidor filtra esas frecuencias altas antes de muestrear.

Una frecuencia de 44 100 Hz se aplica a cada canal, no a la grabación como un flujo combinado. Por tanto, el estéreo almacena 88 200 valores de muestra cada segundo. El factor de canales forma parte de la fórmula de almacenamiento porque cada instante tiene un valor izquierdo y otro derecho. No duplica la frecuencia máxima que puede captar cada canal; ese límite sigue dependiendo de su propia frecuencia de muestreo.

Calcula el audio sin comprimir

El mono tiene un canal; el estéreo tiene dos. El tamaño de la carga útil es

bits=frecuencia de muestreo×profundidad de bits×canales×segundos

Para una grabación estéreo de tres minutos a 44 100 Hz y 16 bits, la tasa es 44 100×16×2=1 411 200 bit/s. Multiplica por 180 segundos para obtener 254 016 000 bits y después divide entre 8: 31 752 000 bytes, unos 31,8 MB.

Una grabación mono de diez segundos a 8000 Hz y 8 bits da 8000×8×1×10=640 000 bits, u 80 000 bytes. Una grabación estéreo con los mismos ajustes ocuparía el doble.

Elige qué almacenar

Unas frecuencias y profundidades mayores requieren más espacio. Los ajustes de CD suelen bastar para escuchar; los estudios suelen usar 24 bits y 48 kHz o más para dejar margen de procesamiento y edición.

MIDI registra instrucciones de notas: qué notas, cuándo empiezan, su intensidad y los instrumentos elegidos. Puede ocupar mucho menos que una interpretación muestreada, pero la reproducción depende de los sonidos de instrumentos disponibles. MIDI puede describir la melodía de una persona que canta como notas; no puede contener su voz grabada real.

Puntos clave

  • La frecuencia de muestreo cuenta medidas por segundo; la profundidad de bits cuenta bits por medida.
  • La cuantificación redondea una muestra a uno de los niveles disponibles.
  • La frecuencia de muestreo debe superar el doble de la frecuencia máxima que se desea captar.
  • Los filtros contra el solapamiento espectral eliminan frecuencias altas antes del muestreo.
  • Los bits de audio equivalen a frecuencia de muestreo × profundidad de bits × canales × segundos.
  • MIDI almacena instrucciones de interpretación, no una forma de onda grabada.
6

Comprime datos y elige un formato

La compresión reduce los bits necesarios para almacenar o enviar datos. Algunos métodos sustituyen información repetida por descripciones más cortas que permiten recuperarla exactamente. Otros eliminan detalles de imágenes y sonido para lograr archivos más pequeños. Seguirás códigos sencillos, tendrás en cuenta la información que necesita un decodificador y elegirás un formato según lo que deba conservarse. Un archivo destinado a la edición o a la recuperación exacta tiene necesidades distintas de un flujo final para escuchar o ver.

6.1 Códigos sin pérdidas y sus limitaciones

La compresión sin pérdidas permite que la descompresión reconstruya exactamente los bits originales. El texto, los archivos de programas, las hojas de cálculo y otros datos exactos necesitan esa propiedad. ZIP, PNG, GIF y FLAC son formatos sin pérdidas conocidos. Aprovechan la redundancia: información repetida o predecible que tiene una descripción más corta.

Describe rachas repetidas

La codificación por longitud de rachas, o RLE, sustituye símbolos idénticos consecutivos por un recuento y el símbolo. La cadena de 18 caracteres «AAAAAABBBCCCCCCCCD» se convierte en «6A3B8C1D», ocho caracteres según esta convención de recuento y símbolo. La decodificación desarrolla cada par: seis A, tres B, ocho C y una D.

La misma idea sirve para zonas de imagen de color plano. La fila de píxeles 0000000011110000 puede describirse como ocho ceros, cuatro unos y cuatro ceros. Un archivo real debe definir cómo se almacenan los recuentos y los símbolos para que la decodificación sea inequívoca.

Las rachas cortas pueden aumentar el tamaño con RLE. «ABCD» se convierte en «1A1B1C1D», lo que duplica el número de caracteres antes de añadir cualquier cabecera. La compresión solo funciona cuando el ahorro supera el coste de describir el patrón.

Haz referencia a una secuencia repetida

Un método de compresión por diccionario sustituye una secuencia repetida por una referencia. Los métodos de la familia LZ son la base de formatos como ZIP y PNG. En «nunca digas: nunca», el segundo «nunca» puede sustituirse por una instrucción para retroceder 13 caracteres y copiar cinco. Los espacios cuentan como caracteres. El decodificador ya tiene ese texto anterior y puede reproducir la secuencia a partir de la referencia.

Asigna códigos más cortos a los símbolos frecuentes

Un código de longitud variable usa distintas longitudes de bits para distintos símbolos. La codificación de Huffman construye códigos a partir de las frecuencias de los símbolos. En «ABRACADABRA», A aparece cinco veces, B y R dos veces cada una, y C y D una vez cada una. Un código de ancho fijo para cinco símbolos necesita tres bits por símbolo, o 33 bits para once letras.

Un código libre de prefijos adecuado es A = 0, B = 10, R = 110, C = 1110 y D = 1111. Los datos codificados usan 5×1+2×2+2×3+1×4+1×4=23 bits. La tabla de códigos añade sobrecarga, por lo que 23 bits por sí solos no son el tamaño completo del archivo.

Libre de prefijos significa que el código de ningún símbolo es el inicio del código de otro. Por tanto, leer 0110 da A seguido de R sin necesitar separadores. Esta propiedad permite que un decodificador de Huffman reconozca un símbolo en cuanto termina su código.

El decodificador debe conocer la convención de codificación además de la carga útil. Para un flujo de tipo Huffman, necesita la correspondencia entre símbolos y códigos; para RLE, necesita distinguir un recuento de un símbolo. Un mensaje pequeño puede ahorrar bits de carga útil y, aun así, aumentar de tamaño total al incluir esta descripción. Compara los tamaños completos original y codificado al decidir si un método ha reducido realmente el archivo.

Mide el ahorro y reconoce las limitaciones

La relación de compresión es el tamaño original dividido entre el tamaño comprimido. Reducir 6 MB a 2 MB da 3:1. Usa la misma unidad en ambos lados.

Ningún método sin pérdidas puede acortar todos los archivos posibles. Hay 2n entradas diferentes de n bits, pero solo 2n−1 cadenas de bits más cortas que n bits. La recuperación exacta exige que las distintas entradas sigan siendo distinguibles, así que no todas pueden recibir salidas más cortas. Los datos aleatorios y los archivos ya comprimidos suelen reducirse poco o aumentar por la sobrecarga añadida.

Puntos clave

  • La descompresión sin pérdidas reproduce exactamente los bits originales.
  • La RLE describe símbolos idénticos consecutivos mediante recuentos.
  • Los métodos de diccionario sustituyen secuencias repetidas por referencias.
  • La codificación de Huffman asigna códigos más cortos según las frecuencias de los símbolos.
  • Un código libre de prefijos identifica los límites de los símbolos sin separadores.
  • La relación de compresión compara el tamaño original con el comprimido.
  • Ningún método sin pérdidas acorta todas las entradas posibles.

6.2 Formatos con pérdidas y decisiones de calidad

La compresión con pérdidas elimina información para reducir el tamaño del archivo. La descompresión crea una versión próxima a la original, con algunos detalles perdidos de forma permanente. Las fotografías, la música, la voz y el vídeo pueden tolerar pérdidas seleccionadas que el texto exacto o los datos de programas no pueden admitir.

Comprime imágenes según su importancia visual

JPEG aprovecha la distinta sensibilidad de la visión humana al brillo, al color y a los detalles finos. Un JPEG típico reduce la resolución de los detalles finos de color y redondea los detalles finos de imagen representados en bloques de 8 por 8. Su ajuste de calidad controla con qué intensidad se descarta información. Una compresión mayor puede producir bloques, desenfoque y halos cerca de los bordes nítidos.

Una fotografía suele poder alcanzar aproximadamente 10:1 con poca pérdida visible. Con esa relación, una imagen con 6 220 800 bytes de datos de píxeles sin comprimir usaría unos 622 080 bytes comprimidos, aproximadamente 0,6 MB. La relación es un ejemplo, no una propiedad fija de todos los JPEG.

Comprime sonido según lo que puede oírse

MP3 y AAC usan codificación perceptual. Un sonido débil puede quedar enmascarado por otro más fuerte de una frecuencia cercana, de modo que el codificador puede dedicar menos bits a información que probablemente no se oiga. Un archivo más pequeño puede seguir sonando de forma muy parecida al original.

Con una tasa de bits constante, el tamaño en bits equivale a la tasa de bits multiplicada por la duración. A 128 kbit/s, una grabación de tres minutos necesita 128 000×180=23 040 000 bits, o 2 880 000 bytes, unos 2,9 MB. Es aproximadamente una undécima parte de los 1411,2 kbit/s del audio de CD sin comprimir. La tasa comprimida ya describe el flujo codificado; no la multipliques de nuevo por la profundidad de bits de las muestras originales.

Aprovecha las similitudes entre fotogramas de vídeo

Los fotogramas vecinos suelen mostrar casi la misma escena. Los formatos de vídeo como H.264 y AV1 comprimen los detalles de imagen y describen muchos fotogramas mediante cambios o predicciones a partir de otros fotogramas. Esto elimina información repetida a lo largo del tiempo y también dentro de cada imagen.

Ajusta el formato al uso
UsoElección adecuadaMotivo
Texto, código o datos exactosArchivo comprimido sin pérdidasDeben conservarse todos los bits
Foto para compartirJPEG u otro formato de imagen con pérdidasTamaño pequeño con pérdida visual aceptable
Captura de pantalla o logotipoPNGConserva bordes nítidos y colores planos
Música para reproducción en líneaAAC, MP3 u OpusAhorra capacidad de transferencia
Máster de audio para archivoFLACRecuperación exacta de las muestras de audio

Conserva un original sin pérdidas para futuras ediciones. Decodificar y volver a codificar repetidamente con pérdidas puede añadir pérdida generacional. Convertir un JPEG que ya tiene pérdidas a PNG conserva sus píxeles decodificados actuales, pero no puede restaurar los detalles eliminados antes.

Una compresión mayor puede costar calidad, tiempo de procesamiento o ambos. La elección útil depende de lo que contiene el archivo y de cómo se usará; el archivo más pequeño no siempre es el más útil.

Puntos clave

  • La compresión con pérdidas elimina permanentemente información seleccionada.
  • JPEG aprovecha la sensibilidad visual; el audio con pérdidas usa codificación perceptual.
  • El tamaño de un flujo comprimido se obtiene con tasa de bits × duración.
  • Conserva un original sin pérdidas cuando importe editar después o recuperar los datos exactos.
  • Cambiar un archivo con pérdidas a un formato sin pérdidas no recupera la información descartada.

Ejemplos de Sistema binario y representación de datos

6 Lecciones Interactivas

1

Construye un código y después interpreta sus bits

12 pasos
Cuenta los patrones que necesita un campo, convierte sus valores y relaciona los grupos binarios con la notación hexadecimal.
  1. 1
    IntroducciónUn patrón, varias interpretaciones

    Un patrón almacenado tiene dos características separadas: cuántos bits ocupa y cómo los interpreta quien lo lee. Los ocho bits 01000001 podrían significar un número, un carácter de texto o una intensidad de color.

    Primero elegiremos suficientes bits para distinguir un conjunto de valores y después interpretaremos un patrón numérico mediante los valores posicionales binarios y el sistema hexadecimal. Cambiar la notación cambia lo que escribes, pero mantiene intacto el valor.

  2. 2
    ExplicaciónCuenta opciones duplicando

    Cada bit tiene dos opciones, por lo que cada bit añadido duplica el número de patrones. Dos bits ofrecen 00, 01, 10 y 11; tres bits ofrecen ocho patrones. En general, n bits ofrecen 2n patrones.

    Para identificar 26 letras, cuatro bits no bastan porque solo ofrecen 16 patrones. Cinco bits ofrecen 32 y dejan seis patrones sin usar. Un código no tiene que usar todos los patrones disponibles.

  3. 3
    DesafíoElige un campo para categorías

    Un dispositivo debe distinguir 90 categorías. ¿Cuál es el menor número de bits que puede codificarlas? ¿Cuántos patrones quedarán sin usar?

    ---reveal---

    Seis bits ofrecen 64 patrones, insuficientes. Siete ofrecen 128, por lo que el campo necesita siete bits y deja 38 patrones sin usar. La mayor etiqueta numérica podría ser 89 si las etiquetas empiezan en cero; ese extremo es distinto del recuento de 90 categorías.

  4. 4
    ConexiónDistingue mayúsculas y minúsculas en la unidad

    Un byte tiene ocho bits. Por eso importa si la letra de la unidad es mayúscula o minúscula: b significa bit y B significa byte. Un enlace de 40 Mbit/s tiene un máximo ideal de carga útil de 5 MB/s antes de descontar la sobrecarga.

    Los prefijos de las unidades importan por separado. Un MB significa un millón de bytes, mientras que un MiB significa 1 048 576 bytes. Convertir una cantidad almacenada de MB a MiB cambia la cifra sin eliminar ningún dato.

  5. 5
    ExplicaciónAlinea las posiciones binarias

    La posición entera situada más a la derecha vale 1. Al avanzar hacia la izquierda se obtienen 2, 4, 8, 16, 32, 64, y así sucesivamente. Un 1 selecciona una posición y un 0 la omite.

    Para 101101, los valores posicionales seleccionados son 32, 8, 4 y 1, que suman 45. Los ceros iniciales pueden completar un ancho sin cambiar estas posiciones. Un cero ausente dentro del patrón desplazaría algunos dígitos y cambiaría el valor.

  6. 6
    EjemploSelecciona las potencias para 156

    La mayor potencia de dos que no supera 156 es 128. Réstala para que queden 28. Los valores posicionales 64 y 32 no caben, así que asígnales ceros.

    Toma 16 de 28 y quedan 12. Toma 8 y quedan 4; después toma 4 para llegar a cero. Las dos posiciones finales, 2 y 1, reciben ceros. A lo largo de las posiciones de 128 a 1, los bits son 10011100. Conservar todas las posiciones no usadas evita que las potencias elegidas se desplacen.

  7. 7
    ConsejoInvierte el orden de los restos de enteros

    La división sucesiva es otra vía para obtener el mismo patrón. Dividir un entero entre dos da su último bit como resto. Dividir el cociente encuentra el siguiente bit hacia la izquierda.

    Para 156, los restos aparecen como 0, 0, 1, 1, 1, 0, 0, 1. Lee del último al primero para obtener 10011100. El orden inverso es necesario porque la división descubre primero la posición menos significativa.

  8. 8
    DesafíoConvierte y comprueba un valor nuevo

    Escribe el decimal 109 en ocho posiciones binarias y después usa tu resultado para explicar si 109 es impar.

    ---reveal---

    Las potencias elegidas son 64, 32, 8, 4 y 1, por lo que el patrón es 01101101. Su suma es 109, lo que comprueba la conversión. El último bit es 1; todas las demás posiciones aportan cantidades pares, lo que deja un entero impar. El cero inicial completa el byte sin cambiar el valor.

  9. 9
    ExplicaciónSustituye cuartetos de bits por dígitos hexadecimales

    El sistema hexadecimal tiene dieciséis dígitos: 0–9 seguidos de A–F para diez a quince. Cuatro bits también distinguen dieciséis patrones, por lo que cada dígito hexadecimal nombra un cuarteto de bits.

    Divide 10011100 en 1001 y 1100. El primer grupo es nueve y el segundo es doce, escrito C. El resultado es 0x9C. El hexadecimal usa la cuarta parte de dígitos que el binario, manteniendo una relación directa con los grupos del byte.

  10. 10
    EjemploAgrupa un patrón corto desde la derecha

    Para convertir 101101, forma grupos desde la derecha: 10 y 1101. Completa el grupo del extremo izquierdo hasta 0010. Ahora los grupos dan 2 y D en hexadecimal, por lo que el valor es 0x2D.

    Comprueba con los valores posicionales hexadecimales: dos dieciseisenas más trece unidades dan 45. Agrupar desde la izquierda colocaría el último grupo corto en una posición incorrecta. Dentro de un desarrollo hexadecimal completo, cada dígito debe conservar sus cuatro bits.

  11. 11
    DesafíoRelaciona bits, ancho y hexadecimal

    Un campo sin signo de ancho fijo almacena 0xB4. ¿Cuántos bits muestran sus dos dígitos hexadecimales, cuál es su patrón binario y qué valor decimal contiene?

    ---reveal---

    Dos dígitos hexadecimales representan ocho bits. B se desarrolla como 1011 y 4 como 0100, por lo que el byte es 10110100. Sus valores posicionales seleccionados suman 128 + 32 + 16 + 4 = 180. De forma equivalente, once dieciseisenas más cuatro dan 180.

  12. 12
    RepasoTres comprobaciones para un valor almacenado

    Comprueba la capacidad, la notación y las unidades por separado. Un campo necesita suficientes patrones para todos sus valores posibles. El binario selecciona potencias de dos; el hexadecimal agrupa esos bits de cuatro en cuatro desde la derecha.

    El valor almacenado se conserva al cambiar la base escrita o la unidad de almacenamiento. Cambiar la interpretación de los datos puede dar un significado distinto a los mismos bits, por lo que el patrón y la regla para interpretarlo deben ir juntos.

2

Interpreta valores con signo y conserva su ancho

11 pasos
Trabaja con límites sin signo, codificación en complemento a dos y ampliación de un valor negativo.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónUn ancho necesita una interpretación
  2. 2
    ExplicaciónReserva un patrón para el cero
  3. 3
    EjemploSigue el retorno cíclico sin signo
  4. 4
    DesafíoElige capacidad suficiente para un recuento
  5. 5
    ExplicaciónDa un peso negativo al bit inicial
  6. 6
    EjemploEmpieza el patrón de −45
  7. 7
    EjemploCompleta el cambio de signo
  8. 8
    DesafíoCodifica otro entero negativo
  9. 9
    Idea claveExtiende el signo, no solo los ceros
  10. 10
    DesafíoAmplía el ancho antes de obtener el opuesto
  11. 11
    RepasoMantén la regla junto al patrón
3

Construye una codificación en coma flotante

17 pasos
Convierte una fracción binaria, forma los campos de IEEE 754 y razona sobre el redondeo y el espaciado.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónUn valor y una escala
  2. 2
    ExplicaciónInterpreta las posiciones fraccionarias
  3. 3
    EjemploGenera una fracción finita
  4. 4
    Idea clavePredice si los dígitos terminan
  5. 5
    DesafíoHalla la escala en coma fija
  6. 6
    ExplicaciónReconoce los campos
  7. 7
    EjemploEscribe 6,25 en binario
  8. 8
    EjemploCodifica el exponente
  9. 9
    EjemploAlmacena solo la fracción
  10. 10
    EjemploUne los tres campos
  11. 11
    DesafíoDecodifica otro valor normal
  12. 12
    ConsejoClasifica primero los patrones reservados
  13. 13
    ExplicaciónDistingue el rango del espaciado
  14. 14
    Idea claveObserva cómo crece la separación
  15. 15
    DesafíoRedondea un entero situado a medio camino
  16. 16
    DesafíoElige un tipo para un importe exacto
  17. 17
    RepasoInterpreta el formato antes del valor
4

Sigue el texto desde los caracteres hasta los bytes

12 pasos
Distingue códigos ASCII, puntos de código Unicode y bytes codificados, y después diagnostica una discrepancia de decodificación.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónEl texto necesita un acuerdo
  2. 2
    ExplicaciónEncuentra el código de carácter ASCII
  3. 3
    EjemploCodifica letras y puntuación
  4. 4
    DesafíoRecupera un dígito numérico
  5. 5
    ConexiónPor qué no bastaba un solo byte
  6. 6
    ExplicaciónIdentifica antes de codificar
  7. 7
    EjemploDivide los bits de é
  8. 8
    EjemploCompleta los dos bytes codificados
  9. 9
    DesafíoCuenta una cadena con varios sistemas de escritura
  10. 10
    Idea claveUn mismo aspecto puede tener dos formas
  11. 11
    DesafíoDiagnostica la palabra ilegible
  12. 12
    RepasoMantén separados tres recuentos
5

Calcula el almacenamiento para imágenes y grabaciones

15 pasos
Usa recuentos de píxeles y muestras, distingue la profundidad de bits de la resolución y compara el almacenamiento sin comprimir con formatos basados en instrucciones.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónCuenta valores y después bits por valor
  2. 2
    ExplicaciónConstruye un píxel RGB
  3. 3
    ConexiónAñade transparencia o usa una paleta
  4. 4
    DesafíoInterpreta un color y su profundidad
  5. 5
    EjemploEmpieza por la cuadrícula de píxeles
  6. 6
    EjemploConvierte la imagen a bytes
  7. 7
    DesafíoEscala la cuadrícula y añade fotogramas
  8. 8
    Idea claveUn dibujo puede almacenar instrucciones
  9. 9
    ExplicaciónMuestrea el tiempo y la amplitud por separado
  10. 10
    ExplicaciónFiltra antes de muestrear
  11. 11
    EjemploCalcula primero la tasa de datos de audio
  12. 12
    DesafíoCalcula otra grabación
  13. 13
    ConexiónLas notas pueden sustituir una forma de onda
  14. 14
    DesafíoCompara dos cambios de almacenamiento
  15. 15
    RepasoMantén visibles los factores y las unidades
6

Comprime sin confundir tamaño y fidelidad

12 pasos
Aplica códigos por longitud de rachas y de longitud variable, contabiliza la sobrecarga y decide cuándo puede descartarse información.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDos formas de obtener un archivo más pequeño
  2. 2
    ExplicaciónSustituye rachas por recuentos
  3. 3
    DesafíoPrueba rachas largas y cortas
  4. 4
    ConexiónSeñala una secuencia ya vista
  5. 5
    EjemploAsigna códigos cortos a los símbolos frecuentes
  6. 6
    DesafíoDecodifica el flujo en orden
  7. 7
    Idea claveAlgunas entradas deben seguir siendo grandes
  8. 8
    ExplicaciónElimina detalles multimedia menos perceptibles
  9. 9
    EjemploUsa directamente una tasa de bits comprimida
  10. 10
    DesafíoProtege un máster al compartir una copia
  11. 11
    DesafíoCompara una relación con un límite de transferencia
  12. 12
    RepasoAjusta la garantía al propósito

Ejercicios de Sistema binario y representación de datos

50 Preguntas de Práctica en 5 sets

Set 1: Interpreta patrones y estima almacenamiento10 Preguntas de Práctica

Pregunta 1 de 10

Un campo de estado debe distinguir 70 estados diferentes. ¿Cuál es el menor número de bits que necesita?
  1. 6 bits
  2. 8 bits
  3. 7 bits
  4. 70 bits
Mostrar respuestaOcultar respuesta
Respuesta: C
Seis bits ofrecen 64 patrones, que no pueden cubrir 70 estados. Siete bits ofrecen 128 patrones, por lo que siete es el menor ancho que sirve. Elegir seis porque 64 está cerca dejaría algunos estados sin un patrón propio.

Pregunta 2 de 10

¿Qué valor decimal representa el número binario 1010110?
  1. 86
  2. 84
  3. 106
  4. 43
Mostrar respuestaOcultar respuesta
Respuesta: A
Los bits a 1 ocupan las posiciones de 64, 16, 4 y 2, que suman 86. El cero en la posición de las unidades no aporta nada. Interpretar 101011 como 43 elimina el cero final, lo que quita una posición y reduce el valor a la mitad en vez de conservarlo.

Pregunta 3 de 10

¿Cómo se escribe el entero binario 1110101 en hexadecimal?
  1. 0xE5
  2. 0x7A
  3. 0xD1
  4. 0x75
Mostrar respuestaOcultar respuesta
Respuesta: D
Agrupa desde la derecha para obtener 0111 0101. Esos cuartetos de bits son 7 y 5, lo que da 0x75. Agrupar desde la izquierda como 1110 101 y completar el segundo grupo cambiaría los valores posicionales y produciría incorrectamente 0xE5.

Pregunta 4 de 10

¿Cuál es el mayor entero sin signo que cabe en 12 bits?
  1. 4096
  2. 4095
  3. 2047
  4. 4097
Mostrar respuestaOcultar respuesta
Respuesta: B
Doce bits ofrecen 4096 patrones y el primero representa el cero. Por tanto, el mayor valor sin signo es 4095. Usar 4096 como máximo confunde el número de patrones disponibles con el último valor de un recuento que empieza en cero.

Pregunta 5 de 10

¿Qué valor representa 11101010 como entero en complemento a dos de 8 bits?
  1. −106
  2. −22
  3. 234
  4. −21
Mostrar respuestaOcultar respuesta
Respuesta: B
El bit más significativo con signo aporta −128 y los demás bits a 1 aportan 64 + 32 + 8 + 2 = 106, lo que da −22. Interpretar 106 como la magnitud y añadir un signo menos da −106, pero eso es una interpretación de signo y magnitud, no de complemento a dos.

Pregunta 6 de 10

¿Qué valor decimal representa la fracción binaria 10,011?
  1. 2,75
  2. 2,3
  3. 2,625
  4. 2,375
Mostrar respuestaOcultar respuesta
Respuesta: D
La parte entera es 2 y la fracción selecciona un cuarto más un octavo. Su suma es 0,375, por lo que el valor completo es 2,375. Usar 2,75 trata el primer 1 fraccionario como un medio y desplaza ambas posiciones fraccionarias seleccionadas una posición a la izquierda.

Pregunta 7 de 10

En ASCII, «0» tiene el código 48. ¿Cuál es el código del carácter «8»?
  1. 56
  2. 8
  3. 55
  4. 64
Mostrar respuestaOcultar respuesta
Respuesta: A
Los caracteres de dígitos de ASCII ocupan códigos consecutivos, empezando por 48 para «0». Avanzar ocho posiciones da 56 para «8». El valor entero 8 tiene otra representación; almacenar el carácter requiere el código de carácter, no el valor que nombra su forma.

Pregunta 8 de 10

¿Qué valores de canales RGB especifica el color web #4080C0?
  1. (40, 80, 120)
  2. (192, 128, 64)
  3. (64, 128, 192)
  4. (4, 8, 12)
Mostrar respuestaOcultar respuesta
Respuesta: C
Divide el código de color en los pares hexadecimales 40, 80 y C0. Sus valores decimales son 64, 128 y 192 en orden rojo, verde, azul. Tratar los pares como números decimales pierde los valores posicionales de base 16, mientras que invertir los pares intercambia rojo y azul.

Pregunta 9 de 10

¿Cuántos bytes de datos de muestras sin comprimir se necesitan para 6 segundos de audio mono a 12 000 Hz y 16 bits?
  1. 72 000 bytes
  2. 288 000 bytes
  3. 1 152 000 bytes
  4. 144 000 bytes
Mostrar respuestaOcultar respuesta
Respuesta: D
Hay 12 000 × 6 = 72 000 muestras en el único canal, cada una de dos bytes. El total es 144 000 bytes. Indicar 1 152 000 expresa el número de bits como bytes; el estéreo duplicaría el tamaño, pero esta grabación es mono.

Pregunta 10 de 10

Un código sin pérdidas usa A = 0, B = 10, C = 110 y D = 111. Un mensaje tiene 40 A, 5 B, 2 C y 1 D. Una tabla obligatoria añade 16 bits. ¿Cuántos bits se ahorran frente a un código fijo de 2 bits sin tabla?
  1. 21 bits
  2. 37 bits
  3. 16 bits
  4. 5 bits
Mostrar respuestaOcultar respuesta
Respuesta: A
La carga útil de longitud variable usa 40 + 10 + 6 + 3 = 59 bits y su tabla eleva el total a 75. El código fijo usa 48 × 2 = 96 bits, por lo que el ahorro es de 21 bits. Afirmar que se ahorran 37 bits ignora la tabla obligatoria de 16 bits.
Set 2: Aplica formatos y calcula cargas útiles10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un enlace transfiere a 48 Mbit/s. Sin contar la sobrecarga, ¿cuántos megabytes decimales puede transferir en 5 segundos?
  1. 6 MB
  2. 30 MB
  3. 240 MB
  4. 3 MB
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Cómo se escribe 74 como valor binario sin signo de 8 bits?
  1. 01010010
  2. 10010100
  3. 01001001
  4. 01001010
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

¿Cómo se representa −19 en complemento a dos de 8 bits?
  1. 11101101
  2. 11101100
  3. 10010011
  4. 00010011
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un valor normal binary32 tiene signo 0, exponente almacenado 125 y bits de fracción 100 seguidos de ceros. ¿Cuál es su valor decimal?
  1. 1,5
  2. 0,25
  3. 0,375
  4. 0,1875
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un valor positivo es finito en binary64, pero desborda binary32 con el redondeo predeterminado. ¿Qué límite de binary32 se ha superado?
  1. Su cantidad de enteros
  2. Sus posiciones decimales
  3. Su rango finito
  4. Su formato de texto
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Cuántos bytes UTF-8 ocupa «AЖ中😀» si Ж es U+0416, 中 es U+4E2D y 😀 es U+1F600?
  1. 10 bytes
  2. 4 bytes
  3. 8 bytes
  4. 12 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un mapa de bits usa una paleta de exactamente 32 colores. ¿Cuál es el menor número fijo de bits necesario para cada índice de píxel?
  1. 4 bits
  2. 6 bits
  3. 32 bits
  4. 5 bits
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una imagen RGB de 300 × 200 sin comprimir usa 24 bits por píxel. Ambas dimensiones se duplican y se añade un canal alfa de 8 bits. ¿Cuál es el nuevo tamaño de los datos de píxeles?
  1. 720 000 bytes
  2. 960 000 bytes
  3. 480 000 bytes
  4. 240 000 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una grabación mono dura 4 segundos a 30 000 Hz con muestras de 12 bits. Tras un filtrado de paso bajo, su frecuencia máxima es 14 kHz. ¿Qué tamaño de carga útil sin comprimir y qué valoración del muestreo se obtienen?
  1. 180 000 bytes; frecuencia insuficiente
  2. 180 000 bytes; frecuencia suficiente
  3. 360 000 bytes; frecuencia suficiente
  4. 120 000 bytes; frecuencia insuficiente
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un flujo de audio de tasa constante usa 96 kbit/s durante 50 segundos. Sin contar las cabeceras, ¿cuál es su tamaño en bytes decimales?
  1. 600 000 bytes
  2. 4 800 000 bytes
  3. 6 000 000 bytes
  4. 300 000 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Interpreta los mismos bits de distintas formas10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué valor decimal representa 0x2B6?
  1. 678
  2. 710
  3. 438
  4. 694
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un contador sin signo de 8 bits usa retorno cíclico. Empieza en 247 y aumenta en 28. ¿Qué valor se almacena?
  1. 19
  2. 20
  3. 255
  4. 275
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un campo de complemento a dos de 6 bits contiene 101101. Se amplía a 8 bits sin cambiar su valor. ¿Cuáles son el patrón ampliado y el valor decimal?
  1. 00101101; −19
  2. 11101101; −45
  3. 11101101; −19
  4. 10101101; −19
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

¿Cuál es el paso entre valores adyacentes cuando un formato sin signo de coma fija tiene seis bits fraccionarios?
  1. 1/6
  2. 1/64
  3. 1/32
  4. 1/128
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

¿Cuáles son el signo, el exponente almacenado y el inicio del campo de fracción al codificar −13,5 como valor normal binary32?
  1. 1; 130; 11011…
  2. 1; 130; 1011…
  3. 1; 124; 1011…
  4. 1; 131; 1011…
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

El texto «0064» se almacena con un byte ASCII por carácter. ¿Cuántos bytes ocupa?
  1. 4 bytes
  2. 1 byte
  3. 2 bytes
  4. 8 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Los bytes de «é» en UTF-8 son C3 A9. Un lector los interpreta como dos caracteres Windows-1252. ¿Cuál es la causa directa de que el texto se muestre ilegible?
  1. Quien escribió usó muy pocos puntos de código.
  2. El texto superó un byte por archivo.
  3. El lector usó la codificación incorrecta.
  4. El lector cambió el número Unicode.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

El ancho de un mapa de bits se triplica y su alto se duplica mientras la profundidad de color permanece fija. ¿Por qué factor aumenta el tamaño de sus datos de píxeles sin comprimir?
  1. 5
  2. 3
  3. 12
  4. 6
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un código libre de prefijos es A = 0, B = 10, C = 110, D = 111. ¿Qué mensaje codifica 1011001110?
  1. BCDAA
  2. BACDA
  3. BCADA
  4. CBADA
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una persona convierte un JPEG existente a PNG sin cambiar sus píxeles decodificados. ¿Qué ocurre con los detalles que JPEG había descartado?
  1. Se recuperan al volver a abrir el PNG.
  2. Se recuperan si el PNG es mayor.
  3. Se recuperan como nuevos campos de metadatos.
  4. Siguen faltando en la imagen.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Diagnostica errores y relaciona representaciones10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un archivo tiene 3 145 728 bytes. ¿Cuál es su tamaño en MiB?
  1. 3 MiB
  2. 3,145728 MiB
  3. 3072 MiB
  4. 24 MiB
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un estudiante divide 90 entre 2 sucesivamente y escribe los restos en el orden obtenido como 0101101. ¿Cuál es el valor binario correcto de 90?
  1. 0101101
  2. 1010110
  3. 1011010
  4. 1101010
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un visor de archivos muestra los tres bytes 0x07, 0xB2 y 0xF0. ¿Cuántos bits contienen esos bytes?
  1. 12 bits
  2. 6 bits
  3. 48 bits
  4. 24 bits
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un sensor registra recuentos enteros de 0 a 8192, ambos incluidos. Cada recuento usa el menor ancho sin signo posible y los campos se empaquetan sin relleno. ¿Cuántos bytes almacenan 40 recuentos?
  1. 65 bytes
  2. 70 bytes
  3. 80 bytes
  4. 560 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un patrón binary32 tiene signo 1, un exponente formado solo por unos y una fracción distinta de cero. ¿Cuál es su categoría y puede convertirse en un número finito cambiando solo el bit de signo?
  1. Infinito; un cambio de signo lo mantiene infinito
  2. Subnormal; un cambio de signo lo hace normal
  3. Finito; un cambio de signo lo mantiene finito
  4. NaN; cambiar el signo lo mantiene como NaN
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Dos valores normales positivos binary32 adyacentes en el intervalo de 2²⁵ a 2²⁶ difieren en 4. ¿Qué hace el redondeo predeterminado con el entero exacto 33 554 435?
  1. Almacena 33 554 432.
  2. Almacena 33 554 435 exactamente.
  3. Almacena 33 554 436.
  4. Desborda a infinito positivo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un límite de almacenamiento permite 18 bytes UTF-8. Una cadena contiene solo el carácter «中» (U+4E2D), sin contar ningún otro dato. ¿Cuántas copias caben?
  1. 6
  2. 18
  3. 9
  4. 4
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una imagen de 20 × 10 usa 16 entradas de paleta, cada una almacenada como RGB de 24 bits, e índices de píxel de 4 bits empaquetados. Sin contar nada más, ¿cuántos bytes se necesitan?
  1. 100 bytes
  2. 148 bytes
  3. 600 bytes
  4. 196 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una señal filtrada contiene frecuencias de hasta 17 kHz. ¿Cuál es la menor frecuencia de muestreo entera en kHz que cumple la regla estricta del muestreo?
  1. 17 kHz
  2. 35 kHz
  3. 34 kHz
  4. 33 kHz
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un decodificador debe recuperar exactamente todas las entradas posibles de 10 bits. Hay 1024 entradas de ese tipo. ¿Por qué un esquema sin pérdidas no puede codificarlas todas en menos de 10 bits?
  1. Solo 1023 cadenas de bits son más cortas que 10 bits.
  2. Exactamente 1024 cadenas de bits son más cortas que 10 bits.
  3. Toda cadena de bits más corta debe terminar en un bit 1.
  4. Toda entrada debe conservar sus posiciones de bits originales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Combina límites, codificaciones y decisiones de tamaño10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un entero binario se escribe como 110011. ¿Qué valor decimal resulta al añadir un cero a su derecha, con ancho ilimitado?
  1. 51
  2. 52
  3. 102
  4. 204
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Cuál es el menor valor de un entero en complemento a dos de 10 bits?
  1. −511
  2. −512
  3. −1024
  4. −1023
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un formato sin signo de coma fija de 8 bits tiene cinco bits enteros y tres fraccionarios. Un valor de 6,375 se almacena exactamente. ¿Qué entero sin signo representa el patrón de 8 bits si se ignora la escala de coma fija?
  1. 51
  2. 6
  3. 48
  4. 102
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un valor en complemento a dos de 8 bits es 10000000. Se extiende su signo hasta 16 bits y después se cambia su signo en 16 bits. ¿Qué patrón resulta?
  1. 1111111110000000
  2. 0000000001111111
  3. 1000000000000000
  4. 0000000010000000
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

En binary32, los valores representables adyacentes cerca de 2²⁴ son 16 777 216 y 16 777 218. ¿Qué resultado se almacena al convertir el entero exacto 16 777 217 con redondeo al más cercano, al par en caso de empate?
  1. 16 777 216
  2. 16 777 217
  3. 16 777 218
  4. 16 777 220
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un campo de texto contiene «09» como los bytes ASCII 0x30 0x39. ¿Qué valor numérico resulta al interpretar estos caracteres como un entero decimal?
  1. 57
  2. 9
  3. 3039
  4. 48
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una grabadora conserva muestras estéreo de 16 bits a 24 kHz. Debe captar una señal filtrada cuya frecuencia máxima es 10 kHz y no superar 6 000 000 bytes de datos de muestras sin comprimir. ¿Cuál es la mayor duración entera en segundos?
  1. 63 segundos
  2. 125 segundos
  3. 31 segundos
  4. 62 segundos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un vídeo sin sonido y sin comprimir tiene 160 × 120 píxeles, 24 bits por píxel y 25 fotogramas/s. Sin contar las cabeceras, ¿cuántos segundos completos caben en 7,2 MB de almacenamiento decimal?
  1. 4 segundos
  2. 10 segundos
  3. 5 segundos
  4. 40 segundos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una grabación mantiene su frecuencia de muestreo y duración, pero pasa de estéreo de 16 bits a mono de 24 bits. ¿Qué fracción del tamaño original de los datos de muestras sin comprimir queda?
  1. 3/4
  2. 3/2
  3. 1/2
  4. 4/3
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un proyecto necesita recuperar exactamente un máster de audio editado y una copia de distribución de 90 segundos cuya carga útil codificada no supere 1,8 MB. ¿Qué par de opciones cumple ambas necesidades?
  1. Máster MP3; distribución constante a 160 kbit/s
  2. Máster FLAC; distribución constante a 192 kbit/s
  3. Máster FLAC; distribución constante a 160 kbit/s
  4. Máster AAC; distribución constante a 128 kbit/s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

81 Términos Clave, cada uno con su definición

A

Ancho fijo
Un ancho fijo es un número determinado de bits reservados para cada valor, que limita cuántos patrones distintos pueden almacenarse.
Un contador de ocho bits no puede añadir un noveno bit almacenado cuando un resultado llega a 256; su regla de desbordamiento importa.
Artefacto de compresión
Un artefacto de compresión es un cambio visible o audible no deseado causado por las aproximaciones introducidas durante la codificación con pérdidas.
Con un ajuste fuerte de JPEG, el borde nítido de una letra puede adquirir desenfoque o cambios en forma de bloques en los píxeles cercanos.
ASCII
ASCII es un código de caracteres de siete bits con 128 entradas para letras del alfabeto inglés, dígitos, puntuación, espacio y caracteres de control.
El signo de exclamación tiene el código ASCII 33 y suele almacenarse como el byte 00100001.

B

Base
La base de un sistema numérico determina el número de valores de dígito y el factor entre valores posicionales enteros vecinos.
«10» significa dos en base 2, diez en base 10 y dieciséis en base 16.
Bit
Un bit es un dígito binario con uno de dos valores, 0 o 1, representado mediante dos estados físicos que el hardware puede distinguir.
Un indicador de estado puede almacenar una elección de encendido o apagado en un bit, y el programa define qué estado significa «encendido».
Bit de signo
Un bit de signo es un bit que indica si un valor con signo es negativo, y su interpretación depende del formato numérico.
En complemento a dos, un 1 inicial indica un valor negativo y también tiene un peso posicional negativo.
Bit implícito
El bit implícito es el 1 inicial que se da por supuesto en un significando binario normal de coma flotante, lo que aumenta la precisión sin almacenar un bit de fracción.
Binary32 almacena 23 bits de fracción, pero tiene 24 bits significativos para valores normales porque el 1 inicial queda implícito.
Bit más significativo
El bit más significativo es el bit situado más a la izquierda en un patrón escrito de ancho fijo y ocupa la posición de mayor orden.
En un byte sin signo, cambiar el bit más significativo cambia el valor en 128 mientras los demás bits permanecen fijos.
Bit menos significativo
El bit menos significativo es el bit situado más a la derecha de un entero binario y aporta el valor de la posición de las unidades.
El bit menos significativo de 10110 es 0, por lo que el entero es par independientemente de sus otros bits.
Byte
Un byte es un grupo de ocho bits, que ofrece 256 patrones posibles y suele formar la unidad mínima de memoria direccionable.
El byte 01000001 puede representar el número 65 o la letra «A», según cómo se interprete.

C

Cambio de signo
El cambio de signo transforma un número en su opuesto aditivo; en complemento a dos se obtiene invirtiendo todos los bits y sumando uno.
Cambiar el signo del patrón de ocho bits de +6 da el patrón de −6, mientras que el valor mínimo no tiene un opuesto positivo.
Canal alfa
Un canal alfa almacena la opacidad de un píxel por separado de su color, habitualmente con 0 para transparente y 255 para opaco.
Un píxel RGBA usa cuatro valores de ocho bits, por lo que su almacenamiento sin comprimir es de cuatro bytes en vez de los tres de RGB.
Carácter de control
Un carácter de control es un código de texto que dirige el tratamiento del texto sin imprimir un símbolo visible ordinario, como una tabulación o un salto de línea.
El código ASCII 10 es un salto de línea, por lo que un archivo puede usarlo para marcar un cambio de línea entre los bytes del texto.
Codificación
Una codificación de caracteres especifica cómo los valores de caracteres válidos se convierten en una secuencia de unidades de código o bytes para su almacenamiento y transmisión.
UTF-8 codifica «é» como C3 A9, mientras que una etiqueta de punto de código identifica el carácter sin indicar esa secuencia de bytes.
Codificación de Huffman
La codificación de Huffman construye un código de longitud variable libre de prefijos a partir de las frecuencias de los símbolos y asigna códigos más cortos a los símbolos frecuentes para reducir la carga útil.
Una letra frecuente puede recibir un código de un bit, pero el archivo también necesita información que permita decodificarlo.
Codificación perceptual
La codificación perceptual reduce los datos multimedia según la sensibilidad humana y dedica menos espacio a detalles que las personas probablemente no perciban.
Un codificador de audio puede eliminar un tono débil enmascarado por un sonido más fuerte de frecuencia cercana en una copia MP3 para escuchar.
Codificación por longitud de rachas
La codificación por longitud de rachas sustituye una racha consecutiva de un símbolo por su recuento y el símbolo, y funciona mejor cuando las rachas idénticas son largas.
Según una convención de recuento y símbolo, «MMMMMMNN» se convierte en «6M2N», mientras que los símbolos alternados pueden aumentar de tamaño.
Código de carácter
Un código de carácter es el número asignado a un carácter por una tabla acordada, lo que permite almacenar símbolos de texto como patrones de bits.
El carácter «3» tiene el código ASCII 51, aunque su valor numérico como dígito es tres.
Código libre de prefijos
Un código libre de prefijos no tiene ninguna palabra de código que sea el inicio de otra, lo que permite al decodificador reconocer símbolos sin separadores adicionales.
Con A = 0, B = 10 y C = 11, los bits 011 se decodifican inmediatamente como A seguido de C.
Coma binaria
La coma binaria separa las potencias enteras de dos de las potencias fraccionarias, que empiezan con un medio inmediatamente a su derecha.
El primer 1 después de la coma en 0,101₂ aporta un medio y el último 1 aporta un octavo.
Coma fija
La coma fija interpreta los bits almacenados con un número acordado de posiciones fraccionarias y produce valores equidistantes a una escala fija.
Con cuatro bits fraccionarios, un valor entero sin aplicar la escala de 40 representa 40/16, o 2,5, en coma fija sin signo.
Coma flotante
La coma flotante almacena un signo, un significando y una escala dada por un exponente, lo que permite cubrir magnitudes muy diferentes con un solo formato.
El mismo formato puede representar una longitud medida pequeña y una distancia mucho mayor cambiando su exponente.
Complemento a dos
El complemento a dos es una representación de enteros con signo cuyo bit más significativo tiene un peso negativo y cuyos bits restantes conservan pesos binarios positivos.
El patrón 11111010 representa −6 en un campo con signo de ocho bits, pero 250 si se interpreta sin signo.
Compresión
La compresión reduce las necesidades de almacenamiento o transferencia al codificar los datos en menos bits; la recuperación exacta depende de que el método sea sin pérdidas.
Una imagen codificada más pequeña se transfiere más rápido por el mismo enlace porque hay que enviar menos bits.
Compresión con pérdidas
La compresión con pérdidas descarta permanentemente información seleccionada y produce una representación más pequeña que reconstruye una aproximación del original.
Un JPEG de alta calidad puede parecerse a la foto y, aun así, no poder reproducir exactamente sus píxeles originales.
Compresión sin pérdidas
La compresión sin pérdidas produce una codificación a partir de la cual pueden reconstruirse exactamente los bits originales, incluidos todos los valores de texto o muestras.
Un archivo FLAC puede restaurar exactamente las muestras de audio aunque su número de bytes almacenados sea menor.
Cuantificación
La cuantificación redondea la amplitud medida de una muestra a uno de los niveles almacenados disponibles e introduce un error que puede aparecer como ruido.
Aumentar la profundidad de bits acerca los niveles de cuantificación sin cambiar cuándo se toman las muestras.
Cuarteto de bits
Un cuarteto de bits es un grupo de cuatro bits, que ofrece dieciséis patrones posibles y corresponde exactamente a un dígito hexadecimal.
El byte 10100111 se divide en los cuartetos 1010 y 0111, que son los dígitos hexadecimales A y 7.

D

Desarrollo binario finito
Un desarrollo binario finito termina tras un número limitado de posiciones binarias; una fracción irreducible lo tiene exactamente cuando su denominador es una potencia de dos.
La fracción 5/8 termina como 0,101₂, mientras que 1/10 necesita una secuencia periódica de dígitos binarios.
Desbordamiento
El desbordamiento ocurre cuando un resultado calculado queda fuera de los valores que puede representar el formato numérico elegido.
Para un contador sin signo de ocho bits, un resultado de 260 queda fuera del rango de 0–255 y requiere gestionar el desbordamiento.
Desbordamiento con retorno cíclico
El desbordamiento con retorno cíclico es un comportamiento que conserva solo un número fijo de bits menos significativos y hace que los valores enteros almacenados recorran cíclicamente los patrones disponibles.
Con retorno cíclico sin signo de ocho bits, aumentar 254 en tres almacena 1 tras un ciclo completo de 256.
Dígito hexadecimal
Un dígito hexadecimal es un símbolo de 0–9 o A–F que da un valor de cero a quince en una sola posición de base 16.
El dígito hexadecimal E significa catorce, mientras que el valor de dos dígitos 0x14 significa veinte en decimal.

E

Entero sin signo
Un entero sin signo representa un número entero no negativo usando pesos binarios positivos en todas las posiciones de un ancho fijo.
El byte 11111111 representa 255 cuando su tipo de dato especifica un entero sin signo de ocho bits.
Error de redondeo
El error de redondeo es la diferencia entre un valor exacto deseado y el valor representable elegido para almacenarlo o calcularlo.
El desarrollo binario periódico de 0,1 se redondea al almacenarlo con precisión finita, tanto simple como doble.
Extensión de signo
La extensión de signo amplía el ancho de un entero con signo copiando su bit de signo en cada posición nueva de la izquierda, lo que conserva el valor.
El valor con signo de cuatro bits 1010 se amplía a 11111010 y conserva −6 en complemento a dos de ocho bits.

F

Fotograma
Un fotograma de vídeo es una imagen de una secuencia temporal; la frecuencia de fotogramas indica cuántas imágenes de ese tipo se muestran por segundo.
A 25 fotogramas por segundo, un segundo de vídeo sin comprimir contiene veinticinco imágenes completas antes de contabilizar el audio.
Frecuencia de muestreo
La frecuencia de muestreo es el número de medidas por segundo en cada canal de audio, medido en hercios, que determina su separación temporal.
A 48 kHz, la grabadora toma 48 000 medidas cada segundo para cada canal de la grabación.

G

Gráficos vectoriales
Los gráficos vectoriales describen formas mediante instrucciones geométricas, lo que permite volver a dibujarlas a distintos tamaños sin ampliar una cuadrícula de píxeles almacenada.
Un logotipo SVG puede describir el centro y el radio de un círculo y después volver a dibujarlo para una visualización mayor.

I

IEEE 754
IEEE 754 es el estándar que define formatos y comportamientos de coma flotante muy usados, incluidos los valores normales, el redondeo y los valores especiales.
Binary32 y binary64 siguen IEEE 754, por lo que la disposición de sus campos puede decodificarse con un conjunto común de reglas.

M

Mapa de bits
Un mapa de bits, o imagen ráster, representa una imagen como una cuadrícula rectangular de valores de píxeles, con un ancho, un alto y una profundidad de color.
Una fotografía digital se almacena como mapa de bits porque cada parte de su imagen detallada necesita un valor de píxel.
Metadatos de imagen
Los metadatos de imagen describen una imagen o su almacenamiento, incluidas las dimensiones y la profundidad, y también pueden incluir datos de la cámara, fecha o ubicación.
Un archivo de fotografía puede contener información de la cámara aunque esos bytes no formen parte de la cuadrícula visible de píxeles.
Método de compresión por diccionario
Un método de compresión por diccionario comprime datos sustituyendo secuencias repetidas por referencias a secuencias conocidas por el decodificador o reconstruidas por él.
Una frase repetida puede representarse mediante una distancia hacia atrás en el texto decodificado y una longitud que copiar.
MIDI
MIDI almacena o comunica instrucciones de interpretación musical, como notas y tiempos, en vez de la forma de onda sonora de una grabación.
Una melodía MIDI puede reproducirse con distintos sonidos de instrumentos, pero no conserva la voz grabada de quien canta.
Muestra
Una muestra de audio es una medida de la amplitud de una señal en un instante determinado, almacenada como un número con la profundidad de bits de la grabación.
Un instante de muestreo estéreo produce una medida para cada uno de los dos canales, lo que aumenta los datos almacenados.

N

NaN
NaN, o «no es un número», es una categoría especial de coma flotante con un campo de exponente formado solo por unos y una fracción distinta de cero.
Una operación numérica no válida, como cero dividido entre cero, puede producir NaN en vez de un número ordinario.
Normalización Unicode
La normalización Unicode convierte secuencias de caracteres equivalentes a una forma común para poder comparar cadenas con distintas secuencias de puntos de código.
Una letra con acento precompuesta y su secuencia de letra base más acento pueden normalizarse antes de comparar las cadenas.
Notación posicional
La notación posicional da a cada dígito un valor determinado tanto por el propio dígito como por su posición en el número escrito.
Mover un 1 de la posición de las unidades a la de los ochos cambia su aportación de uno a ocho.

P

Página de códigos
Una página de códigos es una correspondencia entre caracteres y códigos, a menudo una tabla antigua de ocho bits cuyos valores de byte superiores tienen significados distintos de los de otras tablas.
El byte 0xE9 da «é» en Latin-1 y «й» en Windows-1251, por lo que quien lee debe conocer la página de códigos.
Paleta de colores
Una paleta de colores es una tabla almacenada de colores seleccionados que permite a cada píxel nombrar una entrada de la tabla mediante un índice de menor tamaño.
Un icono de dieciséis colores puede usar índices de píxel de cuatro bits y mantener sus colores RGB reales en la paleta.
Pérdida generacional
La pérdida generacional es la pérdida adicional de información que puede acumularse al decodificar y codificar contenido multimedia repetidamente con un método con pérdidas.
Guardar una foto editada mediante recodificaciones JPEG repetidas puede añadir pérdidas aunque cada versión guardada parezca similar.
Píxel
Un píxel es una posición de la cuadrícula de una imagen ráster que contiene un valor de color o un índice que selecciona un color de una paleta.
Un mapa de bits de 400 × 300 contiene 120 000 píxeles, independientemente del tamaño con que se muestre la imagen.
Precisión
La precisión de un formato numérico describe cuánto detalle significativo conserva; los bits de fracción de coma flotante controlan el espaciado a una escala determinada.
Binary64 conserva más bits significativos que binary32, lo que suele reducir el error de redondeo para la misma entrada.
Prefijo 0x
El prefijo 0x indica que los dígitos siguientes están en notación hexadecimal; es una marca de notación y no añade ninguna posición numérica.
En 0x3A, los dígitos 3 y A aportan tres dieciseisenas y diez unidades; el prefijo identifica la base.
Prefijo binario de la IEC
Un prefijo binario de la IEC multiplica una unidad de datos por una potencia de 1024, con nombres como kibi, mebi y gibi.
Un MiB contiene 1 048 576 bytes, por lo que un archivo de un millón de bytes ocupa algo menos de un MiB.
Prefijo del SI para unidades de almacenamiento
Un prefijo del SI para unidades de almacenamiento multiplica una unidad de almacenamiento por una potencia decimal, como mil para kilo o un millón para mega.
Una carga útil de 2 MB contiene 2 000 000 bytes, aunque un sistema también indique su tamaño en MiB.
Profundidad de bits de audio
La profundidad de bits de audio es el número de bits usados por muestra y determina el número de niveles de amplitud disponibles y su finura.
Dieciséis bits permiten 65 536 niveles de muestra, mientras que ocho bits permiten solo 256 y una cuantificación menos fina.
Profundidad de color
La profundidad de color es el número de bits usados para representar el código de color de un píxel y determina cuántos códigos de color distintos puede tener.
Un índice de paleta de cuatro bits puede seleccionar entre dieciséis colores, mientras que RGB de 24 bits ofrece muchas más combinaciones.
Punto de código
Un punto de código es una posición numerada del espacio de códigos Unicode, escrita como U+ seguido de dígitos hexadecimales, como U+00E9.
El punto de código de «é» sigue siendo U+00E9 tanto si sus bytes se almacenan con UTF-8 como con UTF-16 o UTF-32.

R

Rango de representación
El rango de representación de un formato numérico describe las magnitudes que puede representar; en coma flotante, los bits del exponente determinan sus límites generales de escala.
Un valor puede estar dentro del rango finito de binary32 y, aun así, quedar entre dos valores representables vecinos.
Rasterización
La rasterización convierte instrucciones de formas en una cuadrícula de píxeles a una resolución elegida para que una pantalla pueda mostrar la imagen resultante.
El contorno de una fuente vectorial se rasteriza en píxeles de pantalla cuando un documento muestra sus letras.
Redondeo al par en caso de empate
El redondeo al par en caso de empate resuelve un caso situado exactamente a medio camino eligiendo el valor representable cuyo último bit conservado del significando sea par.
Un entero situado a medio camino en precisión simple cerca de 2²⁴ puede redondearse hacia abajo, aunque otro valor situado a medio camino se redondee hacia arriba.
Redundancia
La redundancia es información repetida o predecible que puede permitir describir los datos de forma más breve sin perder su contenido original.
Una fila larga de un solo color tiene redundancia que la codificación por longitud de rachas puede sustituir por un recuento breve.
Relación de compresión
La relación de compresión es el tamaño original de los datos dividido entre su tamaño comprimido, con ambas cantidades expresadas en la misma unidad.
Reducir un archivo de 15 MB a 5 MB da una relación de compresión de 3:1, no un ahorro de 3 MB.
Resolución
La resolución de una representación es el menor paso distinguible a la escala elegida; la coma fija lo determina mediante el número de bits fraccionarios.
Cinco bits fraccionarios binarios dan un paso de 1/32, por lo que un valor situado a medio camino entre esos pasos necesita redondeo.
RGB
RGB representa un color mediante intensidades de luz roja, verde y azul, habitualmente con ocho bits para cada canal de un píxel.
Rojo y verde a máxima intensidad, sin azul, producen la luz amarilla de RGB (255, 255, 0).

S

Señal analógica
Una señal analógica varía continuamente, como la tensión de un micrófono que sigue los cambios de presión del aire producidos por el sonido.
Un convertidor de audio mide la señal analógica de un micrófono antes de almacenar muestras digitales de ella.
Sesgo del exponente
Un sesgo del exponente es un desplazamiento fijo que se suma al exponente real para que el exponente almacenado pueda ser un campo de bits sin signo.
Un exponente almacenado de 126 en binary32 da un exponente real de −1 al restar su sesgo de 127.
Significando
Un significando es la secuencia de dígitos significativos a la que se aplica una escala mediante una potencia de la base; un significando binario normal empieza por 1.
En 1,011₂ × 2⁴, el significando es 1,011₂, mientras que el exponente controla su escala global.
Signo y magnitud
Signo y magnitud almacena un bit de signo separado de los bits de magnitud positiva, lo que da patrones distintos para el cero positivo y el cero negativo.
En signo y magnitud de ocho bits, 10000110 significa −6; los siete bits inferiores dan directamente la magnitud.
Sistema binario
El sistema binario es el sistema numérico de base 2, que usa los dígitos 0 y 1 con valores posicionales que son potencias de dos.
El entero binario 10010 selecciona las posiciones de dieciséis y dos, por lo que su valor decimal es dieciocho.
Sistema hexadecimal
El sistema hexadecimal tiene base 16 y usa los dígitos 0–9 y A–F, con cada dígito correspondiente a cuatro bits binarios.
El byte 11001010 se escribe de forma más corta como 0xCA, conservando un dígito claro para cada cuarteto de bits.
Solapamiento espectral
El solapamiento espectral ocurre cuando las frecuencias muestreadas superiores a la mitad de la frecuencia de muestreo aparecen como frecuencias falsas más bajas en la grabación digital.
Un filtro contra el solapamiento espectral elimina las frecuencias de entrada altas antes del muestreo para que no creen tonos falsos.
Subdesbordamiento
El subdesbordamiento se refiere a resultados que se vuelven demasiado pequeños para la representación normal en coma flotante y pueden almacenarse como valores subnormales o cero.
Un cálculo que se aproxima a cero puede perder precisión relativa cuando sus resultados entran en el rango subnormal.

T

Tasa de bits
Una tasa de bits es el número de bits codificados o transferidos por segundo, expresado habitualmente en bit/s, kbit/s o Mbit/s.
Una tasa de transferencia de 16 Mbit/s corresponde a 2 MB/s antes de contabilizar cualquier sobrecarga de comunicación.
Teorema del muestreo
El teorema del muestreo exige una frecuencia mayor que el doble de la frecuencia máxima conservada de la señal para muestrear fielmente una señal de banda limitada.
Una señal conservada hasta 18 kHz necesita una frecuencia de muestreo superior a 36 kHz y filtrado para eliminar las frecuencias más altas.
Texto ilegible por una codificación incorrecta
El texto ilegible por una codificación incorrecta se produce cuando quien lee decodifica los bytes almacenados con una codificación distinta de la usada para escribirlos.
«café» en UTF-8 puede aparecer como «café» cuando sus bytes se decodifican como Windows-1252.
Tipo de dato
Un tipo de dato especifica la clase de valor que maneja un programa y ayuda a determinar cómo se interpretan sus patrones de bits almacenados.
Un byte interpretado como entero con signo puede tener un valor distinto del mismo byte interpretado sin signo.

U

Unicode
Unicode es un estándar común de caracteres que asigna puntos de código a distintos sistemas de escritura y define codificaciones para almacenar valores de caracteres válidos.
Las letras «A», «Ж» y «中» tienen puntos de código Unicode distintos dentro del mismo espacio de códigos.
UTF-8
UTF-8 es una codificación Unicode de longitud variable que usa de uno a cuatro bytes por punto de código de carácter válido y conserva los bytes ASCII.
La palabra «café» usa cinco bytes UTF-8 porque su última letra necesita una secuencia de dos bytes.
UTF-16
UTF-16 codifica valores de caracteres válidos en una o dos unidades de código de 16 bits y usa un par sustituto para los valores superiores a U+FFFF.
El emoji «😀» ocupa dos unidades de código UTF-16, D83D y DE00, aunque es un solo punto de código.

V

Valor subnormal
Un valor subnormal es un valor muy pequeño de coma flotante con un campo de exponente formado solo por ceros, una fracción distinta de cero y sin el 1 inicial implícito.
Los patrones subnormales cubren parte del hueco entre el menor valor normal positivo y el cero.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar