Informatica

Páginas: 36 (8935 palabras) Publicado: 7 de junio de 2012
5
CODIFICACIÓN DE LA INFORMACIÓN

5.1. Concepto de código
Para que un ordenador pueda manejar determinada información hay que codificarla en binario, es decir, encontrar una aplicación al menos inyectiva (pero normalmente biyectiva):
f: A → Bn
entre el conjunto A de objetos a codificar y el conjunto Bn = B×B×...×B (n veces), siendo
B={0,1}. Esto permite codificar los objetos de A mediantenúmeros de n bits: el objeto a se
representa en el ordenador por el número binario f(a) y como la aplicación es inyectiva a objetos distintos le corresponden codificaciones distintas.
Como la unidad realmente empleada es el byte, el número n casi siempre es múltiplo de 8.
Hay que notar que la memoria del ordenador es finita, por tanto lo primero que se debe hacer
normalmente es hacer finito elnúmero de objetos de A.
En los apartados sucesivos vamos a ver como se pueden codificar diverso tipo de objetos.

5.2. Codificación de los números enteros
Vamos a empezar por los números enteros, el conjunto Z de los números enteros es infinito, luego no se puede representar, por ello lo primero que se debe realizar es seleccionar un
subconjunto de Z suficientemente grande para que contengatodos los números que vayamos a
necesitar en el problema que estemos tratando. Si utilizamos un byte podremos representar
28= 256 números, si utilizamos 2 bytes, 216 = 65536, con 4 bytes, 232 = 4394967296, etc.

82

TEMA 5 – Codificación de la información

La finitud del rango empleado hace que los resultados de las operaciones no siempre queden dentro del rango (sumando de uno en unoalguna vez tenemos que salirnos del rango), en
esos casos el procesador debe avisar al programador de que el resultado es incorrecto, para
que pueda tomar las medidas oportunas. Eso fue explicado en el tema dedicado al procesador
y no insistiremos sobre ello aquí.
Si el problema no necesita emplear números negativos la codificación más elemental es
escribir directamente el número en base 2, eslo que se llaman números sin signo o binario
puro, por ejemplo la codificación de 1234 con 16 bits sin signo sería 0000010011010010.
Si necesitamos emplear números negativos hay diversas representaciones posibles, la más
sencilla es reservar un bit para el signo y el resto para el valor absoluto del número, es lo que
se llama número con signo y magnitud. El signo se suele poner en el bit mássignificativo y
se suele emplear 0 para números positivos y 1 para negativos. Según eso la codificación de
1234 con 16 bits con signo y magnitud sería 0000010011010010, y la de -1234 sería
1000010011010010, nótese que este número interpretado como número sin signo sería 34002,
por eso hay que distinguir muy bien un número de su codificación, hay objetos de tipo distinto que se codifican igual.La codificación de números enteros por signo y magnitud presenta diversos inconvenientes: el primero es que el 0 tiene 2 representaciones, uno como +0 y otro como -0 y, el segundo, es la dificultad para realizar las operaciones con números negativos, especialmente sumas
y restas. Como los números se almacenan en un ordenador para operar con ellos, no es muy
utilizado.
Otra posible forma decodificar los números con signo es la notación en complemento a 1.
En este caso los positivos se representan en binario puro pero con un bit menos y para los
negativos se hace el complemento a 1 de todas las cifras del valor absoluto; como los positivos emplean un bit de menos, el bit superior de todos los positivos es 0 y el de todos los negativos es 1. En esta notación la representación de 1234con 16 bits es 0000010011010010 y
la de -1234 es 1111101100101101, complemento a 1 del anterior.
Esta notación presenta también algunos inconvenientes: el cero sigue teniendo dos representaciones 00...00 y 11...11 y las operaciones de suma y resta son más sencillas que en el
caso anterior, pero necesitan también ser especiales, no valen las de enteros sin signo.
Finalmente, el método más...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informática
  • Informatica
  • Informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS