You are on page 1of 23

Fundamentos de la Informtica

6
1

Algunos cdigos usados habitualmente en informtica 1

Algunos cdigos
usados habitualmente
en informtica

CONCEPTOS GENERALES

En este apartado vamos a estudiar una serie de caractersticas comunes a todos los cdigos que se
desarrollarn en los apartados siguientes.

1.1 Tipos de informacin - Tipos de cdigos


En las lecciones anteriores fue introducido el concepto de cdigo, sus distintas clases y cmo ste nuevo
elemento se vincula con las fuentes de informacin. En esta leccin se establecer la primera relacin entre
la codificacin de la informacin y los ordenadores. Para ello slo habr de tenerse en cuenta el objetivo
principal del ordenador: procesar informacin. La necesidad del uso de cdigos es evidente si se tiene en
cuenta que el ordenador slo "entiende" palabras construidas a partir de un alfabeto binario, mientras que
las informaciones que debe procesar pertenecen al mundo real y estn lejos de ser magnitudes binarias.
A la hora de procesar informacin un ordenador trabaja con dos tipos de informaciones: instrucciones,
que le dicen qu debe de hacer, y datos (operandos) sobre los que opera. Estas informaciones son
introducidas al ordenador mediante cantidades numricas y caracteres (para entender esto basta con
observar los elementos bsicos que componen cualquier programa de alto nivel). Se tiene, entonces, que
hay que representar bsicamente dos tipos de informaciones:
- Cantidades, para lo cual se usan los denominados cdigos numricos.
- Caracteres: letras, caracteres de control, smbolos de puntuacin, etc, que se representan mediante
los cdigos alfanumricos.
A nivel conceptual los cdigos alfanumricos no presentan ninguna dificultad, ya que por muy grande
que sea el nmero de caracteres a representar, siempre ser finito, por lo que el nico problema reside en
consensuar entre la comunidad informtica que combinacin binaria se asigna a cada carcter. Al final del
tema se expondr la norma ASCII por ser una de las ms comunes.
Las dificultades aparecen a la hora de representar cantidades, ya que al ser su nmero infinito habr que
llegar a una serie de compromisos que caracterizarn y delimitarn el rango de aplicacin de cada cdigo
numrico. Dada la importancia de este tipo de cdigos vamos a exponer, a continuacin, sus rasgos ms
generales.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 2

1.2 Representacin de cantidades. Cdigos numricos


El principal problema reside en el hecho de que tanto los dispositivos de almacenamiento, como los de
procesamiento de un ordenador son de naturaleza finita, por lo que la consecuencia inmediata es que la
longitud de la palabra de cdigo ha de ser igualmente finita. A las cantidades representadas con esta
limitacin espacial se las conoce con el nombre de nmeros de precisin finita.
Esta precisin finita implica la existencia de dos propiedades importantes de los cdigos numricos:
- Rango de representacin limitado: existir un lmite superior B (mxima cantidad representable)
y un lmite inferior A (mnima cantidad representable) (Figura 1).
- El nmero de cantidades representables dentro del rango permitido es finito; es lo que se conoce
como representacin no densa (Figura 1).

Figura 1

Cada una de estas limitaciones define un tipo de error a la hora de representar una determinada cantidad
C:
- Error de desbordamiento. Ocurre cuando la cantidad no pertenece al intervalo de
representacin: C > B o C < A.
- Error de redondeo. Cuando C cae entre dos valores representables, habr que aproximarla por
uno de estos, cometiendo el denominado error de redondeo. Cuantitativamente valdr:
Errorred = | cantidad a representar - cantidad representada |
A partir de este error se define la precisin de una determinada representacin como la
diferencia entre dos cantidades representables consecutivos. Este valor se corresponde con el
mximo error de redondeo que se puede cometer, o, dicho de otra forma, con la mxima precisin
con que puede ser representado un nmero.
Otra propiedad, independiente de lo visto hasta ahora, que caracteriza a un cdigo numrico es
la naturaleza de los nmeros que es capaz de representar. Especial atencin merece el caso de los
nmeros reales. La aparicin de nmeros fraccionarios impone la necesidad de poder diferenciar
entre parte entera (izda. del punto decimal) y parte decimal (drcha. del punto decimal). En la
nomenclatura algebraica habitual, ambas partes se separan mediante un smbolo especial,
generalmente un punto o una coma. En la representacin binaria de este tipo de cantidades se
carece de esta posibilidad, ya que el alfabeto de smbolos slo consta, como sabemos, de dos
elementos. Qu hacer, entonces, para separar la parte entera de la parte fraccionaria? La primera
solucin es el punto fijo.
Punto fijo. El punto decimal se fija en una determinada posicin de la palabra de cdigo. Los
dgitos binarios situados a la izquierda de esta posicin representa a la parte entera , y los situados
a la derecha (incluyendo el de la posicin fijada) a la parte decimal.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 3

El problema de este tipo de representacin surge cuando las cantidades a representar son muy
pequeas o muy grandes, ya que las longitudes de palabra de cdigo necesarias son intratables.
Para solucionar esta limitacin surge una segunda forma de representar nmeros reales: el punto
flotante.
Punto flotante. La resolucin del problema nos la proporciona la representacin exponencial o
cientfica. Efectivamente, partamos de nuestra experiencia. La escritura de muy grandes y muy
pequeas cantidades con todas sus cifras supone un gran gasto de papel y paciencia, adems,
normalmente no estamos interesados, o no se conoce la magnitud con la precisin suficiente como
para tener que escribirla con todos sus guarismos. Lo que hacemos en estos casos es utilizar una
notacin exponencial que compacta en gran medida la representacin. Por ejemplo, para
representar la masa del electrn o la del sol no escribimos:
me = 0.0000000000000000000000000009 gr.
msol = 2000000000000000000000000000000000 gr.
Si no que lo hacemos de la siguiente manera:
me = 9 10-28 gr.
msol = 2 10 33 gr.
Vemos que la ganancia en espacio es evidente. Esta es la filosofa que se aplica en la
representacin punto flotante. Se representa la cantidad puesta de la forma:
m be

donde

m = mantisa en valor absoluto.


b = base del exponente.
e = exponente.

Como el ordenador trabaja con aritmtica binaria, las propiedades de sta hacen que b = 2
(multiplicar o dividir por 2 a una combinacin binaria, tiene el mismo efecto que multiplicar o
dividir por 10 a un nmero en decimal). Como esta asignacin es fija, se da por sobreentendida, de
forma que la base no ser representada. Nos queda, por lo tanto, que una cantidad en la forma vista,
queda perfectamente caracterizada si se especifica el valor del signo, de la mantisa y del exponente.
En esto se basa la codificacin en punto flotante, la palabra de cdigo se divide en tres partes, en
cada un de las cuales se representa, por separado y de la forma adecuada, el signo, la mantisa y el
exponente.
Las caractersticas diferenciadoras de esta representacin son:
* La densidad de puntos no es constante a lo largo del intervalo de representacin: la distancia
entre dos valores representados ser menor en zonas cercanas al cero (exponentes pequeos),
que en las zonas mas alejadas (exponentes grandes).
* Directamente de lo anterior se deduce que la precisin variar a lo largo del intervalo de
representacin.
* De forma general se puede decir que la precisin, vista cono el nmero de cifras
significativas con que se representa la magnitud, depende de la mantisa y el rango de
representatividad del exponente.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 4

1.3 Qu clase de cdigo usar


De lo visto en la asignatura hasta aqu, parece conveniente el uso de cdigos compactos, puesto que son
los ms eficientes. Antes de dar una respuesta precipitada, examinemos un poco ms en profundidad el
proceso de codificacin que tenemos planteado.
El primer problema que surge en este punto, es que al querer crear cdigos de uso general solo se
conoce el nmero de caracteres, o el rango y precisin con que se quiere representar las cantidades, pero no
cual va a ser la fuente generadora de esas informaciones. Dicho de otra forma, a priori solo se puede
conocer el nmero de smbolos a representar pero no sus probabilidades de aparicin.
Otra cuestin a tener en cuenta, es que en el uso real de un cdigo interesa que los procesos de
codificacin y decodificacin sean lo ms sencillos posibles. Para que esto se vea favorecido se hace que
todas las palabras del cdigo sean de igual longitud.
Cualquiera de estas dos razones hace inviable la bsqueda de cdigos compactos, por lo que el inters
se centra en los instantneos, clase a la que pertenecen todas las representaciones que veremos en este tema;
slo cuando se apliquen a fuentes de caractersticas muy particulares se convertirn en cdigos compactos.

1.4 Longitud de la palabra de cdigo


Con carcter general, slo se puede dar respuesta al problema de calcular la longitud de palabra
necesaria para codificar un determinado nmero de smbolos o cantidades distintas. El "slo" anterior no
resta aplicacin a este apartado, ya que la situacin planteada es bastante comn en la practica.
Dados M objetos o informaciones distintas a representar, necesitamos un nmero n de dgitos binarios
tal que cumpla:
(M 2n)n mnimo
Donde 2n es el nmero de combinaciones distintas que podemos formar con n dgitos binarios. La
anterior desigualdad sale de la propiedad que debe cumplir todo cdigo para poder ser instantneo y de
longitud de palabra constante, de que debe haber ms combinaciones binarias (elementos en el conjunto
imagen), que objetos o smbolos a codificar (elementos en el conjunto origen), slo as podemos asegurar
que a cada elemento del conjunto origen se le puede asignar un elemento distinto del conjunto imagen.
Para acabar, hacer notar que el cdigo as creado ser compacto cuando se aplique sobre una fuente de
M smbolos equiprobables, y, adems, cumpla que lg M sea un nmero entero.

Establecidas sus caractersticas generales, pasamos a describir alguno de los cdigos ms habituales en
la informtica.

CDIGOS NUMRICOS

2.1 Sistemas de numeracin


Son capaces de representar nmeros reales positivos.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 5

Se basan en la posibilidad que se tiene de poder representar cualquier cantidad N de objetos, mediante
un polinomio de la forma siguiente:
p -1

N = ai bi = a p-1 b p -1 + a p- 2 b p- 2 + ... + a1 b1 + a0 b0 + a -1 b-1 + ... + a- q b-q


i=-q

Donde b es la base del sistema de numeracin. Para llegar a esta representacin se opera como sigue:
A.- Para la parte entera (exponentes positivos).
1. Se agrupan los N objetos en paquetes de b unidades cada uno. El nmero de objetos que sobren
de esta agrupacin es a0.
2. Los paquetes resultantes se vuelven a agrupar en nuevos paquetes de b objetos. El nmero de
paquetes que no se puedan agrupar en nuevos paquetes de b2 objetos ser a1.
3. Se sigue operando as sucesivamente con paquetes de b3, b4, ... objetos, obteniendo los valores
de a2, a3, ...
B.- Para la parte fraccionaria (exponentes negativos).
1. Se mira cuantas porciones de tamao b-1 caben dentro de la fraccin a representar. A este
nmero le hemos llamado a-1.
2. Si la parte fraccionaria no es mltiplo entero de b-1, sobrar un "trozo" de tamao inferior a b-1.
Se mira cuantas porciones de tamao b-2 caben dentro de esa parte sobrante. Este nmero ser a-2.
3. se sigue operando as, hasta que la parte fraccionaria quede perfectamente cubierta, o hasta que
el "trozo" sobrante sea de un tamao inferior a la precisin con la que queremos representar la
cantidad. Esta ltima condicin se traduce, en los nmeros de precisin finita, en que el nmero de
coeficientes a-i extrados, sea igual al nmero de smbolos reservados para la parte decimal en la
palabra de cdigo.
Es fcil comprobar como una vez fijada la base (b), la cantidad queda completamente caracterizada
conociendo el valor de cada coeficiente ai. Aprovechando esta propiedad, aligeramos notacin,
representando la cantidad simblicamente de la siguiente manera:
N = ap-1ap-2...a2a1a0 . a-1a-2a-3...
A este tipo de notacin se le llama notacin posicional, ya que el valor de cada dgito viene determinado
por su valor numrico en s (cantidad asociada a ese smbolo), y por su posicin dentro de la palabra.
Dadas las caractersticas de formacin del polinomio generador, cada coeficiente ai slo podr tener b
valores distintos; necesitamos, por lo tanto, un alfabeto de b smbolos distintos para poder representar cada
uno de esos valores de ai.
2.1.1

Distintos sistemas de numeracin.

Vamos a concretar todo lo expuesto, desarrollando los sistemas de numeracin ms tiles en


informtica.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 6

Sistema decimal o base 10


Para este sistema b = 10, por lo que el polinomio generador queda:
El alfabeto de smbolos utilizados para representar los 10 valores numricos distintos que puede tener ai
es: {ai}={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
Ej. El desarrollo polinmico de la cantidad 1045.106 sera:
p -1

N = ai 10i
i=-q

1045.106(10 = 1103 + 0102 + 4101 + 5100 + 110 -1 + 010 -2 + 610 -3


El subndice aadido al final de la representacin de la cantidad indica la base usada. Este ser el
convenio de notacin que se seguir para indicar este aspecto, en todos los casos.
Sistema binario o base 2
Fue el matemtico alemn Leibnitz quien introdujo en el siglo XVII este sistema de numeracin, cuya
base es el 2. La cantidad se representa, por lo tanto, en base a potencias de dos:
Cada coeficiente puede tener 2 valores numricos distintos (cero objetos u un objeto), se escoge el
siguiente alfabeto de smbolos para su representacin: {ai}={0, 1}. En principio la eleccin de estos
smbolos es arbitraria, se escoge el alfabeto indicado porque es el ms lgico para el entendimiento
humano: es inmediato para nosotros ver la cantidad representada por cada dgito. Este razonamiento es
aplicable al resto de sistemas de numeracin que veremos.
p -1

N = a i 2i
i=-q

Las razones de Leibnitz para recomendar el sistema binario parece que fueron de tipo mstico.
Consider que haba algo de belleza en la analoga entre el "0", que representa el vaco, y el "1" que
representaba a la divinidad. Independientemente de las razones de Leibnitz, el sistema binario ha sido en
informtica, dada la facilidad para crear dispositivos fsicos que puedan estar en dos estados diferenciados.
Ej. La cantidad 9.25(10 objetos queda desarrollada en potencias de dos mediante el siguiente
polinomio:
9.25(10 = 123 + 022 + 021 + 120 + 02 -1 + 12 -2
Su representacin simblica usando notacin posicional sera:
9.25(10 = 1001 .01(2
En la pregunta anterior se habl de dos caractersticas importantes de cualquier representacin
numrica con precisin finita: el rango y la precisin. El clculo de estas se puede realizar para cualquiera
de los sistemas de numeracin, pero dado que conceptualmente ste no vara de uno a otro, y la importancia

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 7

que tiene la representacin binaria, slo vamos a hallar sus valores para este caso. La extensin al resto de
sistemas es inmediata. Para calcular ambos valores vamos a usar una palabra genrica de cdigo con p
dgitos de parte entera, y q de decimal (ap-1 ... a0.a-1 ... a-q). Bajo estas circunstancias:
Rango. [A,B]
A = menor cantidad representable. Se obtiene cuando todos los coeficientes del polinomio alcanzan su
valor mnimo, en este caso el 0. Sustituyendo, se obtiene:
p -1

N = 0 2i = 0
i=-q

B = mayor cantidad representable. Se obtiene cuando todos los coeficientes del polinomio alcanzan su
p -1

N = 1 2i = ( 2 p - 1 ) + ( 1 - 2- q )
i=-q

valor mximo, el 1. Luego:


Precisin.
La diferencia entre dos valores representables consecutivos, se corresponde con el valor de la mnima
cantidad representable distinta de cero. En notacin binaria esta cantidad ser:
ap-1 ... a0 . a-1 ... a-q
0 ... 0 . 0 ... 1
que sustituyendo en el polinomio, nos dar que el valor de la precisin, en decimal, ser igual a 2-q.
Sistema octal o base 8
Este sistema usa base 8, con el siguiente alfabeto de coeficientes: {ai}={0, 1, 2, 3, 4, 5, 6, 7}. El
polinomio generador quedar:
Ej. Vamos a representar la cantidad 467.375(10 en octal. Generemos primero el polinomio:
467.375(10 = 782 + 281 + 380 + 38 -1
p -1

N = ai 8i
i=-q

Por lo que extrayendo los coeficientes quedar: 467.375(10 = 723.3(8


Sistema hexadecimal o base 16
Como la base es 16, el polinomio generador quedar:
El alfabeto de smbolos para representar las 16 cantidades distintas que puede tener ai, ser: {ai}={0, 1,
2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}. Donde cada guarismo lleva asociada una cantidad que coincide con
su interpretacin en decimal (igual que en los casos anteriores) y las letras llevan asociados los siguientes
valores numricos: A10, B11, C12, D13, E14, F15.
p -1

N = ai 16 i
i=-q

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 8

Ej. La representacin hexadecimal de la cantidad 45990.65625(10 ser:


45990.65625(10 = B16 3 + 316 2 + A16 1 + 616 0 + A16 -1 + 816 -2
45990.65625(10 = B3A6.A8(16
La utilidad en informtica tanto de este sistema, al igual que la del anterior, radica en el hecho de que al
ser las bases potencias enteras de 2, el cambio de representacin de estos a binario, y viceversa, es muy
simple. Aprovechando esta caracterstica en numerosas ocasiones se sustituye la representacin binaria por
la octal o hexadecimal, logrando, as, una economa en el nmero de dgitos a representar.
2.1.2

Cambio de base de representacin

Se trata de, dada una cantidad, obtener su representacin en una cualquiera de las bases. La informacin
en s no vara, slo lo hace su representacin.
a) De octal, binario y hexadecimal a decimal
Es inmediato a partir de lo expuesto: basta con sustituir en el polinomio generador, con la base
adecuada en cada caso.
Ej. De octal a decimal:
35.27(8 = 38 1 + 58 0 + 28 -1 + 78 -2 = 29.734375(10
De binario a decimal:
1011.011(2 = 12 3 + 02 2 + 12 1 + 12 0 + 02 -1 + 12 -2 + 12 -3 = 11.375(10
De hexadecimal a decimal:
BEBE.05(16 = B16 3+E16 2+B16 1+E16 0+016 -1+516 -2 = 48830.01953125(10
b) De octal a binario
Se sustituye literalmente cada smbolo octal de la palabra, por la codificacin en binario de la cantidad a
la que representa (Tabla 1).
Combinacin binaria
Dgito octal
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
Tabla 1

Ej. 7 5 6 . 1 2 4(8 = 111 101 110 . 001 010 100(2


c) De hexadecimal a binario
Se realiza de la misma forma que en el caso anterior, pero ahora con los smbolos hexadecimales. La
representacin binaria de la cantidad asociada a cada smbolo hexadecimal se puede ver en la Tabla 2.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 9

Dgito hexadecimal

Combinacin
binaria

Dgito hexadecimal

Combinacin
binaria

0
1
2
3
4
5
6
7

0000
0001
0010
0011
0100
0101
0110
0111

8
9
A(10(10)
B(11(10)
C(12(10)
D(13(10)
E(14(10)
F(15(10)

1000
1001
1010
1011
1100
1101
1110
1111

Tabla 2

Ej. 1 7 A 4 . E 9(16 = 0001 0111 1010 0100 . 1110 1001(2


d) De decimal a binario
Existen dos mtodos.
( I ) Se deriva directamente del polinomio de definicin de nmeros binarios, y consiste en extraer las
potencias de 2 que forman el nmero. Para ello, se resta la potencia de dos ms grande que sea menor que
el nmero. Al resultado de la resta, se le vuelve a restar la potencia de dos ms grande, pero menor que l.
Este proceso se repite hasta obtener un cero o el nmero de decimales deseado. El nmero binario se
construir asignando 1 a las posiciones correspondientes a las potencias de 2 empleadas, y 0 a aquellas no
empleadas.
Ej. N = 125.385(2
125.385 - 2 6 ( 64) = 61.385
61.385 - 2 5 ( 32) = 29.385
29.385 - 2 4 ( 16) = 13.385
13.385 - 2 3 (
8) = 5.385
5.385 - 2 2 (
4) = 1.385
1.385 - 2 0 (
1) = 0.385
0.385 - 2-2 (0.250) = 0.135
0.135 - 2-3 (0.125) = 0.01
0.01 - 2-7 ( ... ) = 0.0021875

26 25 24 23 22 21 20 2-12-22-3 . . . 2-7
125.385(10=1 1 1 1 1 0 1 . 0 1 1 0 0 0 1(2

( II ) Se divide en dos partes, una para enteros y otra para decimales. Consiste en seguir, para cada parte,
los pasos ya indicados (subapartado 2.1), para obtener el polinomio generador de la cantidad a representar.
Enteros. Se divide el nmero sucesivamente por dos. Los restos se correspondern con los valores de
los coeficientes del polinomio.
Ej. Cojamos el mismo nmero que antes. La parte entera ser 125(10

Fundamentos de la Informtica
125 : 21
(a0 ) 1 62 : 2
(a1 ) 0 31 : 2
(a2 ) 1 15 : 2
(a3 ) 1 7 : 2
(a4 ) 1 3 : 2
(a5 ) 1 1 : 2
(a6 ) 1 0

Algunos cdigos usados habitualmente en informtica 10

125(10 = 1111101(2

Decimales. Se toma la parte decimal y se multiplica por dos. Se toma la parte entera del nmero
resultante y con la parte decimal se repite la operacin hasta obtener un cero o bien la precisin adecuada.
La representacin binaria se corresponder con la secuencia de partes enteras generadas.
Ej. Siguiendo con el ejemplo anterior, la parte decimal del nmero a representar es 0.385.
0.385 2 = 0.77 0
0.770 2 = 1.54 1
0.540 2 = 1.08 1
0.080 2 = 0.16 0
0.385(10 0.0110001(2
0.160 2 = 0.32 0
0.320 2 = 0.64 0
0.640 2 = 1.28 1
...
El resultado final se obtiene uniendo los resultados parciales de cada parte:
N = 125.385(10 1111101.0110001(2
e) De binario a octal
Se toman los dgitos en grupos de tres, del punto hacia la izquierda y del punto hacia la derecha. Cada
grupo se sustituye por su equivalente octal (Tabla 1). Es el mtodo recproco del de octal a binario.
Ej. 11101001101.0011011111(2 = 011 101 001 101 . 001 101 111 100(2 = 3515.1574(8
f) De hexadecimal a octal
Basta con hacer el paso intermedio a binario, es decir: hexadecimal binario octal.
g) De decimal a octal
Lo ms frecuente es usar el mismo mtodo que el (II) explicado para el caso de decimal a binario, salvo
que ahora la base es 8 en vez de 2.
1

La notacin utilizada es: dividendo : divisor


resto cociente

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 11

Ej. N = 185.1875(10
Parte entera:

Parte decimal:

185 : 8
1 23 : 8
7 2:8
2 0

0.1875 8 = 1.5 1
0.5
8 = 4.0 4

185(10 = 271(8

0.1875(10 0.14(8

Uniendo ambas partes: N = 185.1875(10 271.14(8


h) De binario a hexadecimal
Es el mismo proceso que el descrito para pasar de binario a octal salvo que los dgitos se toman de
cuatro en cuatro, para ser sustituido, cada grupo, por su equivalente hexadecimal (Tabla 2).
Ej. 1001100000111111.11001(2 = 1001 1000 0011 1111 . 1100 1000(2 = 983F.C8(16
i) De decimal a hexadecimal
Igual que de decimal a binario o a octal, pero usando base 16.
Ej. N = 129.0535(10
Parte entera:
129 : 16
1 8 : 16
8 0

Parte decimal:

129(10 = 81(16

0.0535 16 = 0.856 0
0.856 16 = 13.696 D
0.696 16 = 11.136 B

0.0535(10 0.0DB(16

Uniendo ambas partes: N = 129.0535(10 81.0DB(16

2.2 Representacin de nmeros reales en punto fijo


Todos los cdigos que veremos permiten la representacin de nmeros reales, tanto positivos como
negativos, en punto fijo, si bien es conveniente indicar que su uso en la prctica suele ser para representar
cantidades enteras.
2.2.1

Signo-Magnitud

Se deriva directamente de la forma de representar el signo en decimal, o sea, mediante smbolos


especiales aadidos al nmero: + nmero positivo, - nmero negativo. Al carecer en binario de la
posibilidad de aadir smbolos distintos del 0 o del 1 (los circuitos del ordenador slo distinguen entre dos
estados distintos), este mtodo se basa en reservar un dgito binario de la palabra de cdigo para codificar el
signo del nmero. El convenio seguido es: 0positivo, 1negativo. Normalmente, el signo es el dgito de
ms a la izquierda, mientras que el resto de los dgitos binarios representan, en binario natural, el valor
absoluto de la cantidad a codificar:
p-2

N = a p -1 a p - 2 ... a1 a0 . a -1 a -2 ... a- q = (-1)a p-1 ai 2i


i=-q

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 12

Ej. Interpretando las siguientes combinaciones binarias como pertenecientes a este cdigo, estn
representando a la cantidad que se indica:
01100 +12(10
11100 -12(10
011001.11 +25.75(10
111001.11 -25.75(10
Rango
Partamos de una palabra de cdigo genrica de p dgitos binarios a la izquierda del punto y q a la
derecha, como siempre. Bajo estas circunstancias, p+q-1 dgitos sirven para representar la magnitud y el
restante para el signo. Supongamos que ste es el de ms a la izquierda, al que se denomina ms
significativo. Se tiene que, en valor absoluto, la mayor cantidad representable es (2p-1 - 1)+(1 - 2-q); el rango
de la representacin ser:
[ -((2p-1 - 1)+(1 - 2-q)) , (2p-1 - 1)+(1 - 2-q) ]
Existen 2p+q-1 nmeros positivos y 2p+q-1 nmeros negativos.
Precisin
Es la misma que en la representacin binario natural: 2-q.
Este mtodo de codificacin tiene dos inconvenientes fundamentales:
- Existen dos representaciones para el cero:
0 00 ... 0 = +0
1 00 ... 0 = -0
- Debido al diferente tratamiento de sumas y restas, necesita circuitos diferentes para realizar estas
operaciones.
Para intentar paliar en alguna medida estos inconvenientes, surgen las representaciones en
complemento, que veremos a continuacin. Lo que se pretende es conseguir una representacin binaria B
del nmero -X(10, partiendo de la A del nmero X(10, de forma que A+B=C, donde C es la representacin
binaria del nmero 0(10.
2.2.2

Coma fija con complemento a la base menos uno

Se define el complemento a la base menos uno de cierto nmero A (Cb-1(A)), como el nmero que
resulta de aplicar la siguiente operacin sobre A:
Cb-1(A) = b p - b-q - A

con b=base del sistema de numeracin.


p=nmero de dgitos de la parte entera de A.
q=nmero de dgitos de la parte decimal de A.
( A=ap-1ap-2 ... a0.a-1 ... a-q )

Conceptualmente, el Cb-1(A), as definido, es una aplicacin biyectiva del conjunto de los reales en s
mismo: Cb-1: , conservando la base de representacin. Es una simple operacin, que aplicada sobre

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 13

una determinada combinacin de smbolos en una representacin, nos da otra combinacin de smbolos en
la misma representacin.
Ej. En b=10, la operacin complemento a 9 para nmeros con parte decimal queda:
C9(235.05)=10 3 - 10 -2 - 235.05=764.94
C9(764.94)=10 3 - 10 -2 - 764.94=235.05
Este ejemplo nos permite ver una propiedad importante de esta aplicacin:
Cb-1(A)=B Cb-1(B)=A.
En el caso de b=2 (sistema binario, que es el de inters para nosotros), se habla de complemento a 1:
C1(A) = 2p - 2-q - A
Aplicando la aritmtica binaria, que se estudiar en Fundamentos de Informtica II, se demuestra que el
resultado de esta operacin es, simplemente, el cambio de los 0s por 1s y los 1s por 0s en A.
Ej. C1(1010.11) = 0101.00
C1(0101.00) = 1010.11
Definida la operacin C1, pasamos a describir el mtodo de representacin de nmeros reales, basado en
esta operacin.
En un cdigo complemento a 1 la asignacin palabra de cdigocantidad se realiza:
- Si la palabra de cdigo empieza por 0 (el dgito ms significativo es 0), se la identifica con la cantidad
resultante de la interpretacin en binario natural de esa combinacin binaria.
- Si la palabra empieza por 1, se la identifica con cantidades negativas, de la siguiente manera: sea B
cualquiera de estas combinaciones binarias. Se tiene que existir alguna combinacin A del cdigo que
empieza por 0, tal que C1(A)=B. Como se vio en el punto anterior, A representar a una cantidad positiva
X(10. Entonces, a B se le asigna la cantidad -X(10.
Ej. Cdigo complemento a 1, con una longitud de palabra de 4 dgitos de los cuales 2 son para la
parte entera y 2 para la parte decimal:
00.00 0.0(10 10.00 -1.75(10
00.01 0.25(10 10.01 -1.5(10
00.10 0.5(10 10.10 -1.25(10
00.11 0.75(10 10.11 -1.0(10
01.00 1.0(10 11.00 -0.75(10
01.01 1.25(10 11.01 -0.5(10
01.10 1.5(10 11.10 -0.25(10
01.11 1.75(10 11.11 -0.0(10
Rango
Para una palabra de cdigo con el formato general siempre reseado hasta ahora:
[ -((2 p-1-1)+(1-2 -q)) , (2 p-1-1)+(1-2 -q) ]

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 14

Precisin
Igual que siempre: 2 -q.
Caractersticas generales de esta representacin:
- El dgito ms significativo de toda combinacin que representa a un nmero positivo, vale 0. El dgito
ms significativo de cualquier combinacin que representa a un nmero negativo, vale 1. Se deduce
inmediatamente, que, sin ser un dgito de signo, el de ms a la izquierda hace las veces de ste, ya que
nos indica el signo de la cantidad representada.
- Ventaja frente al anterior: a la hora de operar con este tipo de cdigo, slo necesitamos un circuito
sumador, ya que la resta se transforma en suma sin ms que hacer: A-B=A+(-B).
- Por contra, siguen existiendo dos representaciones para el 0.

Advertencia. Un error muy comn es sacar la siguiente conclusin: los nmeros positivos se representan en
binario natural y los negativos como el complemento a 1 de la correspondiente combinacin en binario
natural. Esta afirmacin es inexacta, ya que aplicada literalmente llevara, por ejemplo, a que la
combinacin que representa a la cantidad -5 sera:
5(10 = 101(2

010 -5(10

C1(101)=010
Conviene recordar, que tal como se genera el cdigo complemento a 1, toda combinacin que
represente a un nmero positivo empieza por 0 y la que representa a uno negativo por 1: las asignaciones
hechas nunca pueden pertenecer a un cdigo complemento a 1.
Esta identificacin automtica de C1 con nmero negativo no es cierta: no siempre el complemento a 1
de una combinacin que representa a un nmero positivo, representa a un nmero negativo. La operacin
C1 es una simple aplicacin entre dos conjuntos de combinaciones binarias. Slo cuando se emplea para
construir un cdigo complemento a 1, siguiendo ciertos criterios, tiene sentido su utilizacin para hallar
combinaciones que representen nmeros negativos.
La representacin correcta del 5 mediante un cdigo complemento a 1 necesita como mnimo de 4
dgitos, si no su dgito ms significativo nunca podra ser cero:
5(10 = 0101(2

1010 -5(10

C1(0101) = 1010
2.2.3

Complemento a la base

Conceptualmente se basa en los mismos principios que el caso anterior, slo vara la operacin
complemento aplicada. Se define el complemento a la base de un cierto nmero entero A (Cb(A)), como el
nmero que resulta de aplicar sobre A la siguiente operacin:
Cb(A) = b p -A = Cb-1(A) + 2 q

con A = ap-1ap-2 ... a0.a-1 ... a-q


b = base del sistema de numeracin.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 15

Es, nuevamente, fcil ver que Cb: , conservando la base de representacin.


Ej. Para b=10:
C10 (235.05) = 10 3 - 235.05 = 764.95
C10 (764.95) = 10 3 - 764.95 = 235.05
Cumple la misma propiedad que la indicada para el caso del Cb-1.
Para b=2, se habla del complemento a 2 de nmeros representados en binario. Dada una cierta cantidad
A, su C2 es: C2(A)=2p-A=C1(A)+1. Aplicando aritmtica binaria se llega a que una forma rpida de obtener
el C2 de A es: empezando por la derecha, se deja la combinacin tal como est hasta el primer 1, y a partir
de ah se complementa, o sea, se cambian los unos por ceros y viceversa.
Ej. C2 (101.01) = 010.11
C2 (010.11) = 101.01
C2 (0100.0100) = 1011.1100
El uso de esta operacin para representar nmero reales, se concreta en los denominados cdigos
complemento a 2. Los criterios seguidos para la asignacin palabra de cdigocantidad, son los mismos
que los utilizados en la creacin de los cdigos complemento a 1; basta con sustituir donde se hace
referencia a la operacin C1, por la operacin C2. La nica diferencia es que existe una combinacin que
empieza por 1: la 100...0, que no es C2 de ninguna que empiece por 0. A sta, se la identifica con un
nmero negativo, siguiendo la secuencia lgica de nmeros negativos asignados.
Ej. Cdigo complemento a 2 de una longitud de palabra de 4 dgitos, de los cuales 2 son para la parte
entera y 2 para la parte decimal:
00.00 0.0(10 10.00 -2.0(10
00.01 0.25(10 10.01 -1.75(10
00.10 0.5(10 10.10 -1.5(10
00.11 0.75(10 10.11 -1.25(10
01.00 1.0(10 11.00 -1.0(10
01.01 1.25(10 11.01 -0.75(10
01.10 1.5(10 11.10 -0.5(10
01.11 1.75(10 11.11 -0.25(10
Rango
Para una palabra de cdigo con el formato genrico habitual: [ -2 p-1 , (2 p-1-1)+(1-2 -q) ]
Precisin = 2 -q.
Caractersticas generales de esta representacin:
- El dgito ms significativo sigue haciendo referencia al signo de la cantidad representada, en el mismo
sentido que en los cdigos complemento a 1.
- Al poder transformar la operacin resta en una suma: A-B=A+(-B), tampoco se hace necesaria la
existencia de un circuito para la resta.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 16

- Frente al cdigo complemento a 1 presenta la ventaja de haber eliminado la duplicidad en la


representacin del 0; cada palabra de cdigo representa a una cantidad diferente.
Advertencia. Sera conveniente repetir la anterior, pero ahora referido a la operacin C2.
2.2.4

Exceso a N

Puesto que estamos tratando con nmeros de precisin finita, las cantidades a representar siempre
estarn dentro de un determinado intervalo [-N,M]. Si sumamos N a cada uno de esos valores, el intervalo
de cantidades a representar se transforma en el [0,M+N]: el problema de la codificacin pasa a ser una
simple representacin de nmeros positivos. Este es el principio en el que se basa la representacin exceso
a N: la cantidad X se representa mediante la combinacin binario natural correspondiente al nmero X+N.
Resumiendo:
+N
Representacin en binario natural
[-N,M] [0,M+N] Combinacin binaria
Ej. Queremos representar el -8, en un cdigo exceso a 16, con una longitud de palabra de 5 dgitos
binarios. Esta cantidad vendr representada por la combinacin binario natural correspondiente al
nmero -8+16=8(10=01000(2. Luego, la identificacin cantidadcombinacin binaria en el cdigo
referido ser:
-8 01000
Y a la inversa: la combinacin 1010 perteneciente a un cdigo exceso a 8 representa a la cantidad X:
1010(2=10(10=X+exceso X=10-exceso=10-8=2(10
En cada caso el valor de N vendr fijado por el lmite inferior del intervalo de representacin.
Caractersticas generales:
- Sean X e Y a cantidades representadas por las combinaciones A y B respectivamente. Si X>Y
entonces, interpretadas en binario natural, A>B. A diferencia de las representaciones complemento, se
pueden usar los mismos circuitos comparadores que para el cdigo binario natural.
- Por contra, la aritmtica se complica con respecto a la de los cdigos mencionados.
2.3 Representacin de nmeros reales en punto flotante
Recordemos que partimos de nmeros puestos de la forma: m 2 e, y lo que se representa en la palabra
de cdigo es el signo, la mantisa y el exponente por separado. Cada uno de estos elementos presenta una
serie de problemas caractersticos en su codificacin:
- Signo. Tiene dos posibles valores: + y -. Es susceptible, por lo tanto, de ser representado por un
nico dgito binario. El problema que se presenta es de convenio: qu valor del dgito asignar a
cada valor del signo.
- Mantisa. Es la representacin de un nmero real positivo. El problema reside en que los valores
que puede adoptar para una misma cantidad a representar, son mltiples. Utilizando un ejemplo en
decimal podemos ver esto:
La representacin exponencial del nmero 5385.3, tiene, entre otras, las siguientes formas:
5385.3=5.3853103=53.853102=5385310 -1=53853010 -2 ...

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 17

Igual ocurre con nmeros en binario:


La representacin exponencial del nmero 1010.1, tiene, entre otras, las siguientes formas2:
1010.1=1.010123=10.10122=101012 -1=1010102-2 ...
Dada la imposibilidad de representar el punto decimal en binario, habr que llegar a un
compromiso al fijar su posicin dentro de los dgitos reservados para la mantisa en la palabra de
cdigo. Dicho de otra manera, la mantisa ha de tener una forma fija, que se denomina normalizada.
- Exponente. Son nmeros enteros, por lo que lo nico que hay que hacer es fijar el tipo de cdigo
usado en su representacin.
Vemos, por lo tanto, que es imposible continuar el estudio de este tipo de representaciones de forma
general, sin concretar una serie de compromisos. Una de las normas ms extendidas es la que veremos a
continuacin.
2.3.1

Normalizacin IEEE 754

Se trata de una norma de representacin de nmero reales cuyo objetivo es facilitar e intercambio de
datos numricos no slo entre programas de la misma mquina, si no tambin entre mquinas diferentes. Se
pretende que todos los ordenadores unifiquen sus sistemas de representacin de nmeros reales. Esta
normalizacin consta de un conjunto de normas que fueron elaboradas por expertos del Institute of Electric
and Electronic Engineer (IEEE). Se agrupan en tres captulos:
- Formato de los datos.
- Operaciones aritmticas.
- Tratamiento o decisiones a adoptar ante situaciones especiales como desbordamiento, redondeo,
truncamiento o divisin por cero.
Aqu slo vamos fijarnos en el primer aspecto. Los puntos generales de esta norma son:
1.- La base del exponente es dos. Se supone implcita y, por los tanto, no se representa.
2.- El orden en que aparecen las informaciones a representar en la palabra de cdigo es: signo,
exponente, mantisa.
3.- La relacin valor del dgito de signovalor del signo es: 0signo +, 1signo -.
4.- La normalizacin de la mantisa es la siguiente: su primer dgito significativo ("1"), debe quedar
justo a la izquierda del punto decimal. Este valor es implcito, de forma que slo se representa lo
2

Observar como multiplicar o dividir por dos en binario tiene las mismas propiedades que multiplicar o dividir por
10 en decimal.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 18

que est a la derecha del punto. O sea, la mantisa ha de ponerse de la forma 1.m, siendo m lo que
es almacenado en la palabra de cdigo.
5.- El exponente se representa en exceso a N=2p-1-1, donde p es el nmero de dgitos reservados en
la representacin para el exponente. Al valor almacenado se le denomina caracterstica, es decir:
caracterstica=exponente+exceso (simblicamente: c=e+N).
Existen dos valores de la caracterstica que suponen dos casos especiales en el uso de la representacin:
6.- Si la caracterstica toma su valor mximo (11 ... 11), la palabra de cdigo es interpretada de las
siguientes dos formas, dependiendo del valor almacenado en el campo reservado para la mantisa
(m):
- Si m=0, entonces, el nmero representado es el + infinito o - infinito, dependiendo de valor
del dgito de signo.
- Si m0, se utiliza para representar caracteres especiales.
7.- Si el exponente toma su valor mnimo (00 ... 00), existe una doble excepcin:
- En la representacin de la mantisa. sta es normalizada de la forma 0.m. Lo que se
almacena en la palabra de cdigo sigue siendo m.
- En la representacin del exponente. El exceso que se aplica es N=2p-1-2.
8.- Existen dos formatos bsicos de datos:
(I) Precisin simple
La longitud de la palabra de cdigo es de 32 dgitos binarios, repartidos de la siguiente manera:
ns (nmero de dgitos para representar el signo)
nc (nmero de dgitos para representar la caracterstica)
nm(nmero de dgitos para representar la mantisa)

= 1 dgito binario.
= 8 dgitos binarios.
= 23 dgitos binarios.

Dada la longitud del campo reservado para la caracterstica, es inmediato deducir que el exceso normal
ser: N=27-1=127.
Si identificamos como M al valor representado, como s al valor del dgito de signo, como c al valor de
la caracterstica y como m al valor del campo reservado para la mantisa en la palabra de cdigo, la
interpretacin de un cierto valor almacenado ser:
- Si c=255 y m0
- Si c=255 y m=0
- Si 0<c<255
- Si c=0 y m0
- Si c=0 y m=0

M es un carcter especial.
M = (-1) s * infinito
M = (-1) s * 1.m * 2 c-127
M = (-1) s * 0.m * 2 -126
M=0

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 19

(II) Precisin doble


La longitud de la palabra de cdigo es de 64 dgitos binarios, repartidos de la siguiente manera:
ns = 1 dgito binario.
nc = 11 dgitos binarios.
nm = 52 dgitos binarios.
Dada la longitud del campo reservado para la caracterstica, es inmediato deducir que el exceso normal
ser: N=2 10-1=1023.
Identificando cada valor representado de la forma indicada anteriormente, la interpretacin de un valor
almacenado ser:
- Si c=2047 m0
- Si c=2047 m=0
- Si cc<c<2047
- Si c=0 y m0
- Si c=0 y m=0

M es un carcter especial.
M = (-1) s * infinito
M = (-1) s * 1.m * 2 c-1023
M = (-1) s * 0.m * 2 -1022
M=0

Ej.
. Interpretar la combinacin 0 00101000 001010... como una representacin en punto flotante IEEE de
precisin simple:
c=00101000(2=40(10=e+N e=40-127=-87
0 (valor mnimo) <c<255 (valor mximo) mantisa de la forma 1.m con m=001010...
s=0 signo positivo.
Luego M=1.001010.. 2 -87
. Idem, pero ahora la combinacin es 0 00000000 010111001...
c=0(2=0(10 caso especial caracterstica mnima e=-126
como c=0 mantisa de la forma 0.m con m=010111001...
s=0 signo positivo.
Luego M=0.010111001.. 2 -126
.Idem: 1 11111111 00000 ... 0
c=11111111(2=255(10 caso especial caracterstica mxima
m= 0
s=1 signo negativo.
Luego M= -

2.4 Representacin de cantidades exactas. Cdigos BCD


Estos cdigos se basan en codificar por separado cada dgito decimal del nmero a representar. El
alfabeto fuente ser: S={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El nmero n de dgitos de la palabra de cdigo ser:
(2n 10 )n min n = 4
Estos cdigos se pueden clasificar en ponderados y no ponderados.

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 20

BCD ponderados
Cada posicin lleva asociada un peso. La cifra decimal se representa mediante los coeficientes de un
polinomio generador, de forma similar a lo indicado en los sistemas de numeracin:
3

N = ai pi

pi = peso asociado a la posicin i.

i=0

ai = coeficiente i. Valor del dgito i de la palabra de cdigo.


Algunos ejemplos de este tipo de cdigos BCD se pueden observar en la Tabla 3.

Dgito decimal
0
1
2
3
4
5
6
7
8
9

BCD natural
p3 p2 p1 p0
8 4 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1

BCD Aiken
p3 p2 p1 p0
2 4 2 1
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

p3
5
0
0
0
0
0
1
1
1
1
1

p2
4
0
0
0
0
1
0
0
0
0
1

p1
2
0
0
1
1
0
0
0
1
1
0

p0
1
0
1
0
1
0
0
1
0
1
0

Tabla 3

El cdigo BCD Aiken expuesto, aparte de ser ponderado, posee la propiedad adicional de ser
autocomplementario. Esto significa que si A y B son las palabras de cdigo correspondientes a los dgitos
decimales X e Y respectivamente, entonces si C9(X)=Y, se cumple que C1(A)=B.
BCD no ponderados.
La asignacin palabra de cdigodgito
decimal es totalmente arbitraria. Un caso
caracterstico de este tipo es el BCD exceso a
tres (Tabla 4), que tambin posee la propiedad
de ser autocomplementario. Cada dgito decimal
se representa por la combinacin binario natural
correspondiente al resultado de sumar tres al
valor de ese dgito.

2.4.1

Cambios de representacin

Dgito decimal Cdigo BCD exceso tres


0
0011
1
0100
2
0101
3
0110
4
0111
5
1000
6
1001
7
1010
8
1011
9
1100
Tabla 4

a) Decimal BCD
Se sustituye cada dgito decimal por su correspondiente codificacin en el cdigo BCD que estemos
usando.
Ej. El nmero 356.34 en BCD natural quedar: 0011 0101 0110 . 0011 0100

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 21

b) BCD decimal
Se agrupan los dgitos de cuatro en cuatro del punto hacia la izquierda y derecha. Cada conjunto se
sustituye por el dgito decimal al que codifican, segn el cdigo BCD usado.
Ej. Supongamos que estamos usando el cdigo BCD exceso a tres. La combinacin:
0100 1100 1000 . 0011 0101
representar la cantidad 195.02

CDIGOS ALFANUMRICOS

Recordemos que son aquellos en los que el alfabeto fuente es un conjunto de caracteres (letras, signos
de puntuacin, guarismos, carcteres de control para el Terminal, ...). El problema ahora consiste en crear
una tabla que haga corresponder a cada smbolo del alfabeto fuente, con una combinacin de smbolos del
alfabeto cdigo (como siempre se supondr el binario).
MSB
LSB
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

000
NUL 0
SOH 1
STX 2
ETX 3
EOT 4
ENQ 5
ACK 6
BEL 7
BS 8
HT 9
LF 10
VT 11
FF 12
CR 13
SO 14
SI 15

001
DLE 16
DC1 17
DC2 18
DC3 19
DC4 20
NAK 21
SYN 22
ETB 23
CAN 24
EM 25
SUB 26
ESC 27
FS 28
GS 29
RS 30
US 31

010
SP
!
"
#
$
%
&
'
(
)
*
+
'
.
/

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

011
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

100
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

110
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

111
p 112
q 113
r 114
s 115
t 116
u 117
v 118
w 119
x 120
y 121
z 122
} 123
| 124
{ 125
~ 126
DEL127

Tabla 5

El cdigo alfanumrico ms utilizado es el denominado ASCII (American Standard Code for


Information Interchange). Este cdigo en su versin original representa 127 caracteres de la forma expuesta
en la Tabla 5. En ella podemos distinguir dos grupos de caracteres. Uno de ellos est formado por los 32
primeros denominados de "control". Son caracteres no imprimibles cuyo significado es el siguiente:

Fundamentos de la Informtica

Algunos cdigos usados habitualmente en informtica 22

NUL: Nulo (Null).

DLE: Escape del enlace de datos (Data Link


Escape).
SOH: Inicio de cabecera (Start Of
DC1: Control del dispositivo 1 (Device Control
Header).
1).
STX: Inicio de texto (Start of TeXt).
DC2: Control del dispositivo 2 (Device Control
2).
ETX: Final de texto (End of TeXt).
DC3: Control del dispositivo 3 (Device Control
3).
EOT: Final de transmisin (End Of
DC4: Control del dispositivo 4 (Device Control
Transmission).
4).
ENQ: Peticin, consulta (Enquire).
NAK: Acuse de recibo negativo (Not
AcKnoledge).
ACK: Acuse de recibo (ACKnowledge). SYN: Sincronizacin (SYNchronize).
BEL: Pitido (Bell).
ETB: Final de bloque de transmisin (End of
Trans. Block).
BS: Retroceso de un espacio (Back
CAN: Anulacin (CANcel).
Space).
HT: Tabulacin horizontal (Horizontal
EM: Fin de soporte (End of Material).
Tab.).
LF: Salto de lnea (Line Feed).
SUB: Substituir (SUBstitute).
VT: Tabulacin vertical (Vertical Tab.). ESC: Escape (ESCape).
FF: Salto de pgina (Form Feed).
FS: Separador de archivo (File Separation).
CR: Retorno de carro (Cariage Return).
GS: Separador de grupo (Group Separation).
SO: Fuera de cdigo (System Out).
RS: Separador de registro (Register Separation).
SI: Dentro de cdigo (System In).
US: Separador de sub-registro (Underground
Separation).
DEL: Borrar, suprimir (DELete).
El otro grupo lo constituyen los restantes caracteres, conocidos habitualmente como "imprimibles".
Observando la Tabla 5, se puede ver que tanto los dgitos decimales como las letras se encuentran
ordenados de forma creciente. Esto garantiza que los algoritmos de ordenacin de los nmeros en binario
natural, tambin sean vlidos para la ordenacin de cadenas de caracteres.
El cdigo anterior est creado para el juego de carateres ingleses ms corrientes, no contempla ni
caracteres especiales (como pueden ser algunos grficos), ni los especficos de otras lenguas. Para
solucionar esto, el cdigo ASCII original de 7 dgitos se extendi a 8 dgitos. Los 128 primeros caracteres
de ste son los mismos que los del de 7 dgitos, el problema surge en los 128 nuevos smbolos aadidos, ya
que desgraciadamente no existe un convenio al respecto. La asignacin ms habitual, usada para el idioma
castellano por los ordenadores IBM PC, es la que aparece en la Tabla 6.

Distancia de Hamming y distancia de un cdigo

Definicin 1: Se define distancia de Hamming entre dos combinaciones de n dgitos binarios, como el
nmero de ellos que hay que alterar para pasar de la una a la otra.
Ej. La distancia de Hamming entre las combinaciones binarias 0010 y 0111 es de 2 (d(0010,0111)=2),
ya que hay dos posiciones (la a0 y la a2 ) cuyos valores son diferentes en ambas combinaciones.

Fundamentos de la Informtica

MSB
LSB
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

1000

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143

Algunos cdigos usados habitualmente en informtica 23

1001

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

1010

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

1011

176
177
178
179
180
181
182
183
184
185
186
188
189
190
191
192

1100

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207

1101
208
 209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

1110

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239

1111
240
241
242
243
244
245
246
247
248
249
250
251
_ 252

253
 254
SP 255

Tabla 6

El nombre de distancia proviene de que esta operacin puede contemplarse como una aplicacin
d: BnBn N (B=alfabeto binario), que verifica las propiedades del concepto matemtico de mtrica:
a) x, y Bn / d (x, y) = 0 x = y
b) x, y Bn / d (x, y) = d (y, x)
c) x, y, z Bn / d (x, z) d (x, y) + d (y, z)

(Desigualdad triangular)

Las dos primeras propiedades se derivan de la propia definicin. Sin embargo, para demostrar la tercera
basta tener en cuenta que:
n -1

si x = ( x n-1 , xn- 2 , ...., x1 , x0 ), z = ( z n-1 , z n- 2 , ...., z 1 , z0 ), _d(x, z) = | xi - z i |


i=0
n -1

n -1

n -1

i=0

i=0

i=0

Como B n R n _y B n _d(x, z) = | xi - z i | | xi - yi | + | yi - z i |= d(x, y) + d(y, z)

Definicin 2: se define distancia mnima de un cdigo como la distancia (de Hamming) ms pequea
entre dos combinaciones cualesquiera (no necesariamente consecutivas) del cdigo.
Ej. Todos los cdigos vistos en este tema tienen una distancia mnima de 1.
Es necesario fijar estos conceptos, porque, como se ver en lecciones posteriores, sirven para introducir
y, a veces, caracterizar propiedades importantes de los cdigos.