Codificación de la información en los computadores

Los ordenadores y sistemas digitales trabajan con dos valores lógicos (verdadero y falso). Estos valores se representan habitualmente con los números 0 y 1. Sin embargo la representación del lenguaje natural en forma escrita hace uso de cadenas de caracteres alfanuméricos, por este motivo es necesario crear mecanismos que permitan codificar la información en forma binaria.

La información dentro del ordenador tiene como unidad básica el bit, con ella se representan tanto instrucciones como datos. Los bits se agrupan en bytes u octetos; a nivel de hardware es habitual usar como medida la palabra (información direccionable y accesible por parte del procesador en una operación).

Las palabras son habitualmente múltiplos de byte, en algunas operaciones se pueden emplear sus divisores (media palabra) o múltiplos (doble palabra, cuádruple palabra, etc).

Para establecer unas reglas que nos permitan representar la información en binario podemos emplear distintos sistemas de codificación y representación:

Sistemas de codificación directa

Se establece una relación 1 a 1 (biunívoca) entre los símbolos a codificar y el conjunto de códigos binarios disponible. El número de códigos binarios disponible viene determinado por la fórmula 2^n, siendo n el número de bits empleados.

Sistemas de codificación por campos

Se divide la representación binaria en campos y se da a cada uno de ellos un significado. En el caso de los números negativos representados con esta codificación se usa comúnmente un campo cómo modulo y otro como signo.

Sistemas de codificación por secuencias de códigos

Se emplean códigos de diferentes longitudes dotando a una parte del código de significado especial. Se utiliza en secuencias de escape y representación de caracteres especiales.

Sistemas de representación numérica

Los sistemas de representación numérica deben tener en cuenta ciertas características particulares de los elementos que van a representar:

Los elementos representados forman parte de conjuntos ordenados; esto implica que debe poder deducirse si un elemento es anterior o posterior a otro.

Los elementos del conjunto representado pueden requerir operaciones aritméticas. Para ello es necesario definir reglas dentro del sistema que permitan realizar las operaciones de forma consistente.

Los elementos a representar se definen por secuencias de dígitos en una base determinada, además pueden tener distintos campos para diferenciar signo, parte entera y parte fraccionaria. Las bases más usadas en informática son: binaria, octal y hexadecimal; además se suele emplear la decimal por ser la utilizada de forma natural en el mundo real.

La forma de codificación que nos más resulta natural (decimal) tiene asignados distintos pesos a los dígitos que componen un número, siendo el dígito de la derecha (según miramos el número) el menos significativo, y el de la izquierda el más significativo (por ejemplo: las unidades tienen menos peso que las decenas o las centenas). En sistemas de codificación binarios u otras bases no siempre será así, por tanto, se debe definir el bit más significativo (MSB abreviado en ingles) y el bit menos significativo (LSB).

Podemos crear una codificación decimal en binario empleando 4 bits por dígito decimal, pero esta codificación sería muy ineficiente al disponer de 16 valores en binario (4 bits) y emplear solamente 10 de ellos. Además dificultaría la realización de operaciones aritméticas en el computador. Una codificación de este tipo es la empleada en el sistema BCD (Binary Coded Decimal).

Para facilitar las operaciones aritméticas se puede sumar 3 a los códigos binarios de BCD obteniendo una codificación en exceso a 3. Este exceso permite que el sistema resultante sea autocomplementario, lo que implica que al realizar la operación de negación sobre la representación binaria, el resultado sea el complemento a 9, evitando que la aparición de valores no válidos en el rango de 11 a 15 (4 bits).

Sistemas de representación de caracteres alfanuméricos

Con las codificaciones alfanuméricas se pretende representar los dígitos de los números y las letras del alfabeto. Además suelen ser necesarios códigos adicionales para representar caracteres de control y caracteres adicionales como los signos de puntuación, paréntesis, etc. Los más conocidos son EBCDIC, ASCII y más recientemente UNICODE.

A medida que los computadores han ido evolucionando se ha ampliado la cantidad de bits por carácter  pasando por 6, 7 (ASCII), 8 (ASCII extendido) y 16 (UNICODE). Pueden existir variaciones para adaptarse a el lenguaje local de cada región, cambiando algunos de los símbolos en las tablas de códigos (letras usadas localmente como la ñ, caracteres cirílicos, kanji, etc).


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>