Recientes

viernes, 10 de noviembre de 2017

Representación de la información en la computadora

Físicamente hablando, en una computadora la información se representa a través de señales eléctricas, las cuales viajan en los circuitos electrónicos que poseen las computadoras.  La información está construida por unidades, las cuales indican presencia o ausencia de electricidad. A estas unidades se les llama bits (dígitos binarios).
Un bit es la unidad de información más pequeña que puede procesar una computadora. Un dígito binario (bit) es un símbolo que pertenece al sistema de numeración binario, donde este sistema cuenta con dos posibles símbolos: 0 (cero) y 1 (uno). En la computadora el dígito 0 representa ausencia de electricidad y el dígito 1 representa presencia de electricidad. Esto indica que el lenguaje que entienden las computadoras es el sistema de numeración binario (ceros y unos). A este lenguaje se le llama lenguaje binario o lenguaje máquina.

Las computadoras representan la información digitalmente, es decir por medio de dígitos binarios (bits). Estos bits se unen entre sí para representar cuatro tipos de información: textos, imágenes, sonidos y números.

La siguiente tabla muestra dicha representación:


1- Representación de textos

En una computadora los textos son representados en base a las siguientes formas:

1.1 Codificación BCD de 6 bits:

Las primeras computadoras utilizaban códigos de 6 bits para la representación de sus datos numéricos y alfanuméricos. Este sistema admitía 2^5 (64) caracteres únicos, lo cual era suficiente para 26 letras mayúsculas, 10 dígitos y hasta 28 caracteres especiales tales como / * .; , .( ) + -.

1.2 EBCDIC: Código de Intercambio Decimal codificado en binario extendido:

Es un sistema de codificación de 8 bits, donde cada carácter se representa como una cadena de 8 dígitos binarios y hay un total de 2^8 (256) caracteres a disposición. Cada carácter codificado o byte, se divide normalmente en cuatro bits de zona (7, 6, 5 y 4), y cuatro bits numéricos (3, 2, 1 y 0).

1.3. ASCII: Código Estándar Americano para el Intercambio de Información:

El código ASCII básico utiliza 7 bits y es actualmente el más usado. Se usa especialmente para la transmisión de datos y corresponde a la normalización ANSI X3.4-1968 ò ISO 646.

Existen otras versiones ampliadas de este código que utilizan 8 bits y respetan los códigos normalizados del ASCII básico, aprovechando las combinaciones no usadas para representar símbolos adicionales. Entre ellas se encuentran los códigos ISO 8859-n, donde n es el número que identifica el juego de los nuevos caracteres introducidos dependiendo de los lenguajes. Por ejemplo, la norma, ISO 8859-1, también denominada ISO-Latin1, se proyectó para América y Europa occidental e incluye vocales con acentos, tildes, diéresis y otras letras latinas no usadas en los países anglosajones.

1.4. UNICODE: 

Es propuesto por un consorcio de empresas y entidades con el objetivo de hacer posible escribir aplicaciones que sean capaces de procesar texto de muy diversas culturas.

Los códigos de E/S anteriores presentan varios inconvenientes, tales como:

- Los símbolos codificados son insuficientes para representar los caracteres especiales que requieren numerosas aplicaciones. 
- Los símbolos y códigos añadidos en las versiones ampliadas a 8 bits no están normalizados.
- Están basados en los caracteres latinos, existiendo otras culturas que utilizan otros símbolos muy distintos.
- Los lenguajes escritos de diversas culturas orientales, como la china, japonesa y coreana se basan en la utilización de ideogramas o símbolos que representan palabras, frases o ideas completas, siendo, por tanto, inoperantes los códigos que sólo codifican letras individuales.

2- Representación de datos numéricos:

En una computadora los datos numéricos son representados en base a las siguientes formas:

2.1 Enteros:

2.1.1 Representación de dígitos Decimales Codificados en Binario (BCD):

Hay muchas maneras de representar datos numéricos en forma binaria. Uno puede simplemente escribir el número en base 2. A esto se llama codificación binaria directa. Otra manera es codificar los números decimales dígito por dígito. A esta codificación que requiere por lo menos 4 bits por cada dígito decimal, se le llama codificación BCD (binary-coded decimal) Decimal Codificado en Binario.

En esta representación se utiliza la codificación ponderada, en la cual se le dan a los bits de izquierda a derecha, los pesos 8, 4, 2 y 1, respectivamente. Como estos pesos son precisamente los valores de posición en el sistema binario, un dígito decimal esta codificado como su representación binaria. Ejemplo: La representación BCD 8-4-2-1 de N = 469 es: 0100 0110 1001.

2.1.1.1 Decimal desempaquetado:

En este sistema un número se almacena con un byte por cada una de sus cifras. Cada byte lleva en su cuarteto de la izquierda cuatro unos (F en hexadecimal) denominados bits de zona, y en el de la derecha la cifra en BCD (Decimal Codificado en Binario) denominados bits de dígitos. El cuarteto de la izquierda de la última cifra representa el signo, conteniendo 1100 para el +, 1101 para el - (C y D en hexadecimal).

Ejemplo: 1992:  1111 0001 1111 1001 1111 1001 1100 0010
                           F1              F9              F9              C2

               -1992: 1111 0001 1111 1001 1111 1001 1101 0010          
                           F1              F9              F9              D2

2.1.1.2 Decimal empaquetado:

En este sistema se representa cada dígito en un cuarteto (sin bits de zona), salvo el primero por la derecha que lleva el signo con los mismos valores (C y D). 

Ej.: 1992:                 0000 0001 1001 1001 0010 1100                    01 99 2C

2.1.2 Representación Binaria (Coma Fija):

Al utilizar en la computadora el sistema binario como método de representación interno de datos, es conveniente tener en cuenta que disponemos de un número finito de bits, que denominamos palabra. El tamaño de una palabra depende de la computadora que se utilice y representa la cantidad de bits que la computadora es capaz de transferir en una operación de E/S.

El nombre “coma fija” viene de la posición en que se supone situado el punto decimal, que es en una posición fija. La coma fija es utilizada en la actualidad exclusivamente para la representación de números enteros, suponiendo que la coma decimal figure implícitamente a la derecha de los dígitos.

Existen cuatro formas de representar números en coma fija:

a) Módulo y signo (MS):

El bit que está situado más a la izquierda representa el signo, y su valor será de 0 para el + y de 1 para el -. El resto de los bits (N-1) representan el módulo del número. Suponemos en principio que los números no poseen parte decimal, por lo que la coma se supone implícita a la derecha.

b) Complemento a 1 (C-1):

Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el + y el 1 para el -. Para los números positivos el resto de los bits (N-1) representan el módulo del número. El negativo de un número positivo se obtiene complementando todos sus dígitos (cambiando ceros por unos y viceversa) incluido el bit de signo.

c) Complemento a 2 (C-2):

Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el + y el 1 para el -. Para los números positivos el resto de los bits (N-1) representan el módulo del número. El negativo de un número positivo se obtiene en dos pasos:

Primer paso: Se complementa el número positivo en todos sus bits (cambiando ceros por unos y viceversa) incluido el bit de signo, es decir, se realiza el "complemento a 1".

Segundo paso: Al resultado obtenido en el primer paso se le suma 1 (en binario) despreciando el último acarreo si existe.

d) Exceso a 2 elevado a N-1:

Este método no utiliza ningún bit para el signo, con lo cual todos los bits representan un módulo o valor que corresponde al número representado mas el exceso, que para N bits viene dado por 2 elevado a N-1.

2.2 Reales (Coma Flotante):

2.2.1 Notación Exponencial:

Cuando se opera con números muy grandes o muy pequeños se suele utilizar la notación exponencial. Según esta notación el número 13.257,3285, puede representarse, entre otras, de las siguientes maneras:

13.257,3285 = 13.257,3285 * 10^0 = 1,32573285 * 10^4 = 0, 132573285 * 10^5 = 132.573.285 * 10^-4 = 13.257.328.500 * 10^-6

Donde todo número se puede representar como:

Número = mantisa * base ^ exponente

La notación exponencial también se conoce como notación científica o notación en coma flotante, dado que parece como si la coma decimal flotase de derecha a izquierda y al revés al cambiar el valor del exponente.

2.2.2 Procesamiento de la coma flotante:

La representación y manejo de los datos puede ser responsabilidad del hardware de la computadora o de los traductores de lenguajes. Los microprocesadores actuales disponen internamente un procesador de coma flotante (FPU ó Float Point Unit) que contiene circuitos aritméticos para operar con este tipo de datos. Los primeros microprocesadores no incluían la FPU y esa función cumplían los coprocesadores matemáticos. Si el hardware no dispone de circuitería para coma flotante y el lenguaje de programación incluye este tipo de datos, el traductor debe descomponer las instrucciones en formatos operables por los circuitos de la máquina, disminuyendo el rendimiento del procesamiento.

2.2.3 Normalización IEEE 754:

El IEEE (Instituto de Ingeniería Eléctrica y Electrónica) ha creado un estándar sobre la presentación de números en coma flotante. Este estándar especifica cómo deben representarse los números en coma flotante con simple precisión (32 bits) o doble precisión (64 bits), y también cómo deben realizarse las operaciones aritméticas con ellos.

3- Representación de sonidos:

En una computadora los sonidos son representados en base a las siguientes formas:

3.1 Grabación de una señal de sonido:

Una señal de sonido se capta por medio de un micrófono que produce una señal analógica (señal que puede tomar cualquier valor dentro de un determinado intervalo continuo).

Posteriormente la señal analógica es amplificada para encajarla dentro de dos valores límites, por ejemplo, entre -5 voltios y +5 voltios. 

4- Representación de imágenes:

Las imágenes se adquieren por medio de periféricos tales como escáneres, cámaras de video o cámaras fotográficas. Como todo tipo de información, una imagen se representa por patrones de bits, generados por el periférico correspondiente.

Si bien hay sistemas de codificación de imágenes muy diversos, existen 2 formas básicas de representar las imágenes:

- Mapa de bits
- Mapa de vectores

4.1. Mapa de bits:

Una imagen está compuesta por infinitos puntos y a cada uno de ellos se le asocia un atributo que puede ser su nivel de gris, blanco y negro o su color si la imagen es en color. Para codificar y almacenar la imagen hay que tener en cuenta dos factores: el número de puntos a considerar y el código de atributos asociado a cada uno de ellos.

Como no se puede almacenar y procesar los atributos de los infinitos puntos, los sistemas de captación consideran la imagen dividida en una fina retícula de celdas o elementos de imagen (pixeles) y a cada uno de ellos se le asigna como atributo el nivel de gris medio de la celda o el color medio de la celda correspondiente.

La resolución de la imagen es el número de elementos horizontales x el número de elementos verticales y determina la calidad de imagen.

4.2 Mapa de vectores:

Se descompone la imagen en una colección de objetos tales como líneas, polígonos y textos con sus respectivos atributos o detalles (grosor, color, etc.) modelables por medio de vectores y ecuaciones matemáticas que determinan tanto su forma como su posición dentro de la imagen.

Para visualizar una imagen en una pantalla o impresora determinada, un programa evalúa las ecuaciones y escala los vectores generando la imagen concreta a ver.