Representación de Datos en Computadoras

Descubre cómo las computadoras representan datos (números, texto, audio, imágenes) con esta guía para estudiantes. Aprende sobre binario puro, complemento a 2, IEEE 754 y más. ¡Optimiza tu aprendizaje!

La representación de datos en computadoras es un concepto fundamental en la informática, crucial para entender cómo las máquinas procesan y almacenan información. Desde textos hasta números, pasando por audio e imágenes, todos los datos deben ser convertidos a un formato binario que los sistemas digitales puedan manejar. Este proceso de codificación garantiza que, a pesar de usar solo ceros y unos, la computadora pueda interpretar y manipular la información de manera eficiente y confiable. Exploraremos los sistemas de representación de datos más comunes y sus características esenciales.

¿Qué es la Representación de Datos en Computadoras?

Una computadora es una máquina diseñada para procesar datos. Para ello, la información externa debe ser transformada en una secuencia de bits (0 y 1), que son los dos estados posibles que simplifican el diseño y aumentan la fiabilidad de los componentes internos. Estos bits son la base del lenguaje binario de las computadoras. Un mismo patrón binario, como 10011001, puede tener diferentes significados dependiendo del sistema de representación de datos utilizado, sea un número, una letra, un color o un sonido.

Los formatos de representación de datos son conjuntos de reglas que permiten codificar digitalmente la información. Sus características principales son:

  • Estructura definida: Establece cómo se organizan los bits.
  • Interpretación unívoca: Cada combinación de bits tiene un significado exacto.
  • Compatibilidad: Permite que distintos sistemas interpreten los datos de la misma manera.
  • Eficiencia: Busca optimizar el almacenamiento y el procesamiento.

Los usuarios interactúan principalmente con cuatro tipos de datos:

  • Textos: Codificados usando alfabetos o conjuntos de caracteres (ej. ASCII, UNICODE).
  • Números: Fundamentados en el sistema de numeración de base 2, con varias representaciones para enteros y reales.
  • Sonidos: Señales de audio captadas por sensores, transformadas en señales eléctricas y luego digitalizadas.
  • Imágenes-Video: Tratamiento de imágenes estáticas y dinámicas para su representación digital.

En esta guía, nos centraremos en la representación de números, que presenta los desafíos más complejos debido a la variedad de tipos numéricos (naturales, enteros, racionales, irracionales) y la necesidad de manejar signos y partes fraccionarias.

Formatos de Representación de Números: Una Clasificación

Los sistemas de representación numérica se clasifican en dos grandes grupos:

  1. Formatos de longitud fija (datos numéricos): Utilizan una cantidad predeterminada de bits. Incluyen:
  • Coma fija: Binario puro (naturales), Signo y Módulo (enteros), Complemento a 1 (enteros), Complemento a 2 (enteros), Exceso a M (enteros).
  • Coma flotante: Para números reales (norma IEEE 754).
  1. Formatos de longitud variable (datos numéricos y alfanuméricos): Emplean una cantidad de bits que depende de los caracteres a representar. Incluyen:
  • Códigos Decimales BCD (datos numéricos).
  • Códigos Alfanuméricos (ASCII, UNICODE).

Sistema de Representación Binario Puro (BP)

El Sistema de Representación Binario Puro permite representar únicamente números naturales (enteros positivos sin signo). Se basa en el sistema posicional de base 2. Los n bits disponibles forman una cadena de dígitos binarios (dn-1...d1d0)2 y su valor se obtiene mediante el Teorema Fundamental de la Numeración (TFN). Si la conversión a binario no ocupa todos los n bits, se completan con ceros a la izquierda. Este sistema es común para direccionamiento de memoria o valores numéricos enteros sin signo.

Ejemplo: Representar 27 en binario puro de 8 bits.

  • 27₁₀ = 11011₂
  • En 8 bits: 0001 1011₂

Rango de Representación en Binario Puro

Para n bits, el número menor es 0 (todos los bits en 0). El número mayor es (2^n - 1) (todos los bits en 1). Por lo tanto, el rango es R = [0, 2^n - 1].

Ejemplo: Rango en binario puro de 8 bits.

  • Cantidad de combinaciones: 2⁸ = 256.
  • Mínimo: 0 (0000 0000).
  • Máximo: 255 (1111 1111).
  • Rango: R = {0, 255}.

Desventajas del Sistema Binario Puro

Operar con binario puro presenta varias dificultades:

  • Desbordamiento en suma: La suma de dos números de n bits puede requerir n+1 bits. Si el (n+1)-ésimo bit (acarreo cn+1) no cabe, se pierde, resultando en un valor incorrecto. La Unidad Aritmético Lógica (UAL) debe detectar esto.
  • Ejemplo (4 bits): 1101 + 1010 = 10111. Si solo hay 4 bits, el resultado es 0111, lo cual es erróneo.
  • Desbordamiento en producto: El producto de dos números de n bits puede necesitar hasta 2n bits para su representación.
  • Números negativos: El sistema binario puro no puede representar números negativos. Antes de restar A – B, es necesario verificar que A ≥ B.

En resumen, el Sistema Binario Puro de n bits:

  • Permite la representación de números naturales (enteros positivos).
  • La realización de operaciones aritméticas es limitada.
  • El rango de representación es R = {0, 2^n – 1}.

Sistema de Representación Signo y Módulo (SyM)

El sistema Signo y Módulo es una modificación del binario puro que reserva un bit para indicar el signo. De n bits disponibles, uno se usa para el signo y los (n-1) restantes representan el módulo o magnitud del número en binario. El bit más a la izquierda suele ser el bit de signo (dn-1):

  • S = 0 para números positivos.
  • S = 1 para números negativos.

Este sistema es común en campos específicos de ingeniería. Para representar un número N, el bit de signo adopta 0 o 1 según el signo, y los (n-1) bits restantes representan el valor absoluto de N en binario puro.

Ejemplo: Representar 47 y -47 en signo y módulo de 8 bits.

  • 47₁₀ = 101111₂
  • +47₁₀ = 0 010 1111 (signo 0, módulo 0101111)
  • -47₁₀ = 1 010 1111 (signo 1, módulo 0101111)

Rango de Representación en Signo y Módulo

Con (n-1) bits para la magnitud, se pueden generar 2^(n-1) combinaciones. El rango es simétrico:

  • R = { – (2^(n-1) – 1), (2^(n-1) – 1)}

Ejemplo: Rango en Signo y Módulo de 8 bits.

  • n-1 = 7 bits para magnitud.
  • Mínimo: -127 (1111 1111).
  • Máximo: 127 (0111 1111).
  • Rango: R = {-127, 127}.

Desventajas del Sistema Signo y Módulo

  • Operaciones aritméticas complejas: Las sumas y restas dependen del signo de los operandos, requiriendo análisis previos.
  • Doble representación del cero: Existe +0 (000...00) y -0 (100...00), lo que puede causar ambigüedades. El cero es positivo por definición, pero 100...0 se interpreta como negativo.
  • Posibilidad de desbordamiento.

En resumen, el Sistema Signo y Módulo de n bits:

  • Representa números enteros positivos y negativos.
  • El primer bit indica el signo.
  • El rango es simétrico: R = { – (2^(n-1) – 1), (2^(n-1) – 1)}.
  • Tiene dos representaciones para el cero.
  • Las operaciones aritméticas son difíciles.

Sistemas de Representación Basados en el Complemento Aritmético

Para superar las dificultades aritméticas de Signo y Módulo, se utilizan sistemas basados en el complemento aritmético. El complemento aritmético C(N) de un número N es otro número que se calcula como la diferencia entre un valor de referencia y N. La clave es que C(N) se comporta como el negativo de N, permitiendo transformar restas en sumas (A - B se convierte en A + C(B)).

Existen dos tipos principales de complemento aritmético:

  • Complemento a la base: Valor de referencia b^n. Para base 2, es el Complemento a 2 (C2).
  • Complemento a la base menos uno: Valor de referencia (b^n - 1). Para base 2, es el Complemento a 1 (C1).

Una propiedad importante es que el complemento del complemento de N es igual a N (C(C(N)) = N), lo que permite obtener el número original a partir de su complemento.

Sistema de Representación Complemento a 1 (SRC1)

El Sistema de Representación Complemento a 1 usa binario puro para positivos y el complemento a 1 para negativos. El bit de la izquierda (dn-1) indica el signo (0 para positivo, 1 para negativo), de forma similar a Signo y Módulo.

La operación C1(N) se calcula como (2^n - 1) - N o, de forma práctica, invirtiendo bit a bit los ceros por unos y los unos por ceros de la representación binaria de N en n bits.

Ejemplo: Representar -9 en SRC1 de 8 bits.

  • 9₁₀ = 0000 1001₂
  • C1(9) = 1111 0110₂ (invirtiendo los bits)
  • Así, -9₁₀ = 1111 0110 en SRC1.

Rango de Representación en SRC1

El rango es simétrico: R = { – (2^(n-1) – 1), (2^(n-1) – 1)}.

Ejemplo: Rango en SRC1 de 8 bits.

  • Mínimo: -127 (1000 0000).
  • Máximo: 127 (0111 1111).
  • Rango: R = {-127, 127}.

Al igual que Signo y Módulo, SRC1 tiene dos representaciones para el cero: +0 (000...00) y -0 (111...11), lo cual es una desventaja. Además, las operaciones aritméticas requieren el mecanismo de end-around carry (acarreo circular).

Sistema de Representación Complemento a 2 (SRC2)

El Sistema de Representación Complemento a 2 es el más utilizado en computadoras. Representa los números positivos en binario puro y los negativos mediante el complemento a 2 del número positivo. El bit dn-1 también indica el signo (0 para positivo, 1 para negativo), pero no es un bit separado de la magnitud; se trabaja con los n bits como un conjunto indivisible.

La operación C2(N) se calcula como 2^n - N. Prácticamente, se puede obtener como C1(N) + 1 o copiando los bits de N de derecha a izquierda hasta el primer '1', copiando ese '1', y luego invirtiendo el resto de los bits a la izquierda.

Ejemplo: Representar -50 en SRC2 de 8 bits.

  • 50₁₀ = 0011 0010₂
  • C1(50) = 1100 1101₂
  • C2(50) = 1100 1101 + 1 = 1100 1110₂
  • Así, -50₁₀ = 1100 1110 en SRC2.

Rango de Representación en SRC2

El rango es asimétrico y el cero tiene una representación única. Para n bits:

  • R = { – (2^(n-1)), (2^(n-1) – 1)}

Ejemplo: Rango en SRC2 de 8 bits.

  • Mínimo: -128 (1000 0000).
  • Máximo: 127 (0111 1111).
  • Rango: R = {-128, 127}.

Las ventajas de SRC2 son significativas:

  • Única representación para el cero.
  • Operaciones aritméticas simplificadas: Permite sumar números positivos y negativos sin diferenciar sus signos. El acarreo excedente se ignora, lo que simplifica el diseño de los circuitos aritméticos. Por ejemplo, sumar 7 + (-5): 0000 0111 + 1111 1011 = 1 0000 0010. Ignorando el acarreo superior, el resultado es 0000 0010 (2₁₀).

Representación en Exceso a M

Este sistema representa un número N como N + M en binario puro de n bits, donde M es un valor de exceso. Se utiliza casi exclusivamente para expresar el exponente en números de coma flotante.

  • Los números positivos pueden empezar con 1 y los negativos con 0, dependiendo de M.
  • Valores comunes de M son 2^(n-1) o 2^(n-1) - 1.

Ejemplo: Para 8 bits y M = 128.

  • 127 se representa como 127 + 128 = 255 = 1111 1111₂
  • -5 se representa como -5 + 128 = 123 = 0111 1011₂

Representación en Coma Flotante (IEEE 754)

La representación en coma flotante se utiliza para números reales, abarcando racionales e irracionales. Se basa en la notación científica N = c,m × b^e donde:

  • c: coeficiente (un solo dígito entero).
  • m: mantisa (parte fraccionaria).
  • b: base (generalmente 2).
  • e: exponente (entero).

Normalización de Números

La notación científica normalizada en base binaria siempre presenta c = 1. Por ejemplo, 0.1000101₂ = 1.000101 × 2⁻¹. La normalización consiste en desplazar la coma detrás del primer dígito significativo y ajustar el exponente para preservar el valor original del número.

La Norma IEEE 754

El estándar IEEE 754 es el más difundido para la aritmética binaria de coma flotante, resolviendo los problemas de compatibilidad entre fabricantes. Define dos formatos básicos:

  1. Precisión Simple (32 bits):
  • 1 bit para el signo (S).
  • 8 bits para el exponente (e), representado en Exceso a 127.
  • 23 bits para la mantisa (m).
  • Forma: N = 1,m × 2^e (el '1' es un bit implícito que no se almacena).
  1. Precisión Doble (64 bits):
  • 1 bit para el signo (S).
  • 11 bits para el exponente (e), representado en Exceso a 1023.
  • 52 bits para la mantisa (m).

Pasos para representar un número en IEEE 754 (ej. Precisión Simple):

  1. Bit de signo (S): 0 para positivo, 1 para negativo.
  2. Convertir a binario: El número decimal a su equivalente binario.
  3. Normalizar: Expresar el número binario como 1,m × 2^e.
  4. Mantisa (m): Tomar los bits después del '1' implícito.
  5. Representar el exponente (e): Sumarle el exceso (127 para precisión simple) y convertir a binario de 8 bits.
  6. Formar la representación: S | Exponente | Mantisa.

Ejemplo: Representar 12.375₁₀ en IEEE 754 precisión simple.

  1. S = 0 (positivo).
  2. 12.375₁₀ = 1100.011₂.
  3. Normalizar: 1.100011 × 2³.
  4. Mantisa (m) = 100011.
  5. Exponente (e) = 3 + 127 = 130₁₀ = 10000010₂.
  6. Representación: 0 | 10000010 | 10001100000000000000000.

Casos Especiales en IEEE 754

La norma IEEE 754 define representaciones para casos especiales:

  • Cero: Exponente y mantisa en ceros. Hay +0 y -0.
  • Valores desnormalizados: Para números muy pequeños cercanos a cero. Utilizan un exponente con todos sus bits en cero y una mantisa distinta de cero, con un '0' implícito (ej. 0.m × 2⁻¹²⁷).
  • Infinitos: Exponente con todos sus bits en uno y mantisa en ceros. Representa +∞ o -∞ (ej. desbordamiento).
  • No Numéricos (NaN): Exponente con todos sus bits en uno y mantisa distinta de ceros. Indican operaciones no válidas o indeterminadas.

La coma flotante no es exacta para todos los números reales. La capacidad finita de bits implica que se trabaja con

Temas relacionados