You are on page 1of 18

Arquitectura y Organizacin de Computadoras

Unidad 2: La informacin en una computadora: Tamaos principales: bit, byte, palabra, doble
palabra. Aritmtica del procesador. Representaciones numricas de punto fijo. Operaciones.
Representacin y aritmtica de nmeros en punto flotante. Codificacin de la informacin
numrica y alfabtica. Otros sistemas de codificacin numricos y alfanumricos. Cdigos
redundantes: Concepto, tipos.

La informacin en una computadora ................................................................................................ 2


BIT ............................................................................................................................................... 2
BYTE ........................................................................................................................................... 2
Palabra .......................................................................................................................................... 2
Representacin interna de la informacin ........................................................................................ 3
Representacin numrica de Punto Fijo ....................................................................................... 3
Rango y Precisin en sistemas restringidos a n bits ................................................................. 3
Sistemas de numeracin posicionales ...................................................................................... 4
Conversin entre sistemas ........................................................................................................ 4
Representacin de nmeros en los sistemas binario, octal y hexadecimal .............................. 6
Representacin de Binarios con signo (BCS) .......................................................................... 7
Aritmtica del computador ....................................................................................................... 8
Overflow y Carry ..................................................................................................................... 9
Representacin numrica en Punto Flotante ................................................................................ 9
Normalizacin y bit implcito ................................................................................................ 10
Rango y precisin ................................................................................................................... 11
Estndar del IEEE (norma 754) ............................................................................................. 12
Suma y resta en formato de punto flotante............................................................................. 12
Codificacin de la informacin .................................................................................................. 13
Codificacin de la informacin no numrica ......................................................................... 14
Cdigos redundantes .................................................................................................................. 17
1. Cdigos autodetectores ..................................................................................................... 17
2. Cdigos correctores ........................................................................................................... 18

La informacin en una computadora


Las personas estamos acostumbradas a contar objetos y a realizar operaciones utilizando el sistema
decimal. Este es uno de los muchos mtodos de representacin de la informacin que existe. Sin embargo,
las computadoras no lo pueden manejar porque estn formadas por dispositivos digitales, es decir, todos
sus circuitos internos trabajan en forma binaria (encendido-apagado, si-no, 0-1). Esto implica que tengan
que emplear otro sistema para gestionar la informacin: el sistema binario (sistema numrico con base 2,
por lo que slo utiliza dos smbolos: el 0 y el 1). Estos unos y ceros no son ms que impulsos elctricos
con un determinado voltaje (por ejemplo: 3,3 voltios para el 1 y 0 voltios para el 0).

BIT
Teniendo en cuenta que las computadoras manejan un lenguaje binario, analizaremos los DGITOS
BINARIOS como la unidad ms elemental de informacin para la comunicacin de datos. Se denomina
BIT (contraccin de BINARY DIGIT) al dgito binario que toma el valor 0 1. Representa la informacin
correspondiente a la ocurrencia de un suceso de entre dos posibilidades distintas: prendido o apagado,
abierto o cerrado.
Un aspecto fundamental en la codificacin binaria es determinar la cantidad de BITS necesarios para
representar la informacin, de manera que podamos identificar una entre varias posibles.
Como un bit puede ser 1 o 0, podremos utilizarlo para seleccionar una informacin entre dos. Con dos bits,
una entre cuatro; tres bits una entre ocho; etc. Las posibilidades aumentan como potencias de dos:
Un bit --------> 21 = 2 posibilidades
Dos bits --------> 22 = 4 posibilidades
Tres bits --------> 23 = 8 posibilidades
Si quisiramos conocer cuantos bits necesitamos para una de ocho situaciones utilizamos logaritmos en
base 2  log2 8 = 3.
En general el nmero de bits (B) que necesitaremos para poder codificar una determinada cantidad de
informacin (N) estar determinado por:
B = Log2 N
Como ejemplo, para poder representar en forma binaria los 26 caracteres de nuestro alfabeto
necesitaramos:
B = Log2 26 = 4,7 bits ===> B = 5 bits

BYTE
A pesar de que el ordenador maneja internamente la informacin en binario, no acepta entradas ni muestra
salidas de esa forma. Para que la informacin de E/S sea comprensible y fcil de manejar, se utiliza un
conjunto de smbolos, denominados caracteres. Se establece una correspondencia entre la representacin
interna binaria y el caracter externo, al que se le asigna una combinacin nica de bits que lo diferencia del
resto. Casi todos los ordenadores utilizan internamente una agrupacin de 8 bits, denominada BYTE, para
representar cada carcter. Habitualmente byte se utiliza como sinnimo de caracter.

Palabra
Normalmente hay acuerdo acerca del significado de los trminos bit y byte, pero no as sobre el
concepto de palabra, el que depende de la arquitectura particular de cada procesador. La palabra o Word
es un conjunto de uno o ms bytes que la CPU trata como unidad. Es la unidad de informacin procesada
por la UAL.
Los tamaos de palabra tpicos son de 16, 32, 64 y 128 bits, siendo el de 32 bits el ms comn. Intel
considera el tamao de la palabra como de 16 bits y la doble palabra como de 32 bits.
Recordemos brevemente cmo se realiza el procesamiento de la informacin: las instrucciones y los datos
pasan a travs de buses a la memoria (MP). Dichas instrucciones son ejecutadas, una por vez, para lo cual
primero cada una, por un bus, llega al registro de instrucciones (RI) de la UCP, donde permanece mientras
se ejecuta, para que la UC interprete qu operacin debe ordenar. Luego, el dato a operar por dicha
instruccin llega desde la memoria a un registro acumulador (AX) del procesador, antes de ser operado en
Arquitectura y Organizacin de Computadoras - 2012

la ALU, a fin de obtener un resultado. Este puede sustituir en el registro AX al dato ya operado, y luego
pasar a la memoria si una instruccin as lo ordena.
El procesamiento de los datos que estn en la MP ser ms rpido si en cada acceso a ella, el nmero de
bits que la CPU puede tomar o enviar en paralelo es lo mayor posible. Es como llevar a la boca alimentos
con una cuchara: cuando ms grande sea sta, ms rpido se ingerir la comida (a igualdad de cucharadas
por minuto). Pero del mismo modo que existe un lmite fsico respecto de la cantidad mxima de alimento
que se puede ingerir, en cada modelo de UCP se tiene una cantidad mxima de bits que sta puede tomar
por vez de la MP para procesar, que en general es mltiplo de 8.
La denominada palabra de un procesador es un indicador del nmero mximo de bits que puede tener un
dato a ser operado por la UAL del mismo. Expresa tambin el nmero de bits de dato que maneja
simultneamente la UCP.
Si la palabra de un procesador es 32 bits, implica que la UAL puede sumar o restar dos nmeros de 32 bits,
y que el resultado que genere tendr tambin 32 bits.
El tamao o longitud de palabra determina adems el ancho de los buses internos de la CPU por donde se
transmiten las palabras, y el de los registros donde una palabra puede almacenarse. Es decir, son
compatibles todos los elementos internos de la CPU.

Representacin interna de la informacin


Sabemos que la informacin debe estar representada por patrones de 1 y 0. Sin embargo, existen
muchas maneras de hacerlo, es decir, muchas maneras de codificar los datos. Algunos de los ejemplos
ms utilizados son: la codificacin de nmeros de punto fijo (con o sin signo), la de los nmeros reales
(conocida como Coma Flotante), y la de los caracteres requeridos para la impresin de texto.

Representacin numrica de Punto Fijo


En esta representacin la coma est ubicada siempre en el mismo lugar. Al representar con este formato,
no se almacena la coma. Slo se supone que est en un lugar determinado.
Respecto a un mtodo de representacin se deben hacer las siguientes consideraciones: capacidad de
representacin, rango y precisin.

Rango y Precisin en sistemas restringidos a n bits


El rango y la precisin son conceptos importantes en la arquitectura de computadoras, debido a que ambos
son elementos finitos en la implementacin de la arquitectura, mientras que son infinitos en el mundo real,
por lo que el usuario debe tener en claro las limitaciones que surgen al tratar de representar informacin
externa con formato interno.
El rango est dado por el nmero mnimo representable y el nmero mximo representable. En un sistema
binario sin signo (BSS) el rango es [0 ... (2n 1)], mientras que en un sistema binario con signo (BCS) el
rango es [(-2n-1 +1) ... (2n-1 1)]
La precisin es la mnima diferencia entre un nmero representable y el siguiente.
La capacidad de representacin es la cantidad de nmeros que se pueden representar. Est dada por bn.,
donde b es la base del sistema en cuestin.
Ej. 1: si utilizamos 3 dgitos, con la coma entre el primero y el segundo, en el sistema decimal tendramos
un rango de 0,00 hasta 9,99 [0,00 ... 9,99]. La precisin de la representacin es de 0,01, y el error es la
mitad de la diferencia entre dos nmeros consecutivos, como 4,01 y 4,02 es decir 0,01/2= 0,005. Implica
que cualquier nmero de este rango puede representarse en este formato con una aproximacin de hasta
0,005 de su valor real o preciso.
Ej. 2: en un sistema de representacin binario sin signo, con cinco dgitos, el nmero mximo
representable es 31 (bn-1). El rango es [0, 31], es decir [00000, 11111] y la capacidad de representacin 25
nmeros, es decir, 32 nmeros.
Arquitectura y Organizacin de Computadoras - 2012

Sistemas de numeracin posicionales


La base o raz de un sistema de numeracin define el rango de valores posibles que pueden adoptar sus
dgitos.
La expresin general que permite determinar el valor de un nmero en un sistema de numeracin de base k
y en formato de punto fijo es la siguiente:

El valor del dgito que ocupa la posicin i est representado por bi. Existen en este caso n dgitos a la
izquierda de la coma fraccionaria y m dgitos a su derecha. Esta forma de representacin de un nmero, en
la que cada posicin tiene asignado un determinado valor, se denomina sistema de numeracin
posicional.
Supongamos la expresin 541,25(10, con n=3, m=2, k=10
541,25(10 = 5 x 102 + 4 x 101 + 1 x 100 + 2 x 10-1 + 5 x 10-2
= 500 + 40 + 1
+ (2/10) + (5/100) = (541,25)10
Si en forma similar se considera el nmero binario 1010,01(2, en el que n=4, m=2 y k=2
1010,01(2 = 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 + 0 x 2-1 + 1 x 2-2
= 8 + 0 + 2 + 0
+ 0,25 = 10,25(10
En estos sistemas de numeracin posicionales se define el bit con el mayor peso asociado como bit ms
significativo (MSB, most significant bit), y el bit de menor peso como bit menos significativo (LSB, least
significant bit).

Conversin entre sistemas


De binario a decimal
El procedimiento visto anteriormente permite convertir un nmero expresado en un sistema de numeracin
de base cualquiera al sistema de numeracin decimal, mediante la utilizacin de una representacin
polinmica. Se trata de multiplicar cada dgito por el peso asignado a su posicin y luego sumar los
valores para obtener el nmero convertido.

De decimal a binario
La forma ms sencilla de convertir nmeros que contengan tanto parte entera como fraccionaria, consiste
en operar cada una de sus partes por separado.
Ej.: 23,375 a binario  23,375 = 23 + 0,375
Parte entera Mtodo de los restos
La forma polinmica general para la representacin de un nmero entero binario es:
bi x 2i + bi-1 x 2i-1 + ... + b1 x 21 + b0 x 20
Si se divide el nmero entero por 2, se obtendr:
bi x 2i-1 + bi-1 x 2i-2 + ... + b1 x 20
con un resto de b0. Como resultado de dividir por 2 el entero original se obtiene el valor del primer
coeficiente binario b0. Si se repite el proceso, se obtiene el segundo coeficiente b1. Este procedimiento
forma la base del mtodo de los restos. Contina hasta obtener 0 como cociente. Los restos obtenidos se
unen en el orden indicado por la figura, teniendo en cuenta el MSB y LSB.

Arquitectura y Organizacin de Computadoras - 2012

En general, todo nmero entero expresado en el sistema decimal puede convertirse a cualquier otro sistema
dividindolo reiteradamente por la base del sistema de numeracin al que se lo quiere convertir.

Parte fraccionaria - Mtodo de las multiplicaciones


La conversin puede resolverse multiplicando sucesivamente la fraccin por 2.
La forma polinmica general para la representacin de una fraccin binaria es:
b-1 x 2-1 + b-2 x 2-2 + b-3 x 2-3 + ...
Si se multiplica dicha expresin por 2, se obtiene
b-1 + b-2 x 2-1 + b-3 x 2-2 + ...
Se determina as el coeficiente b-1. Reiterando el proceso sobre la fraccin remanente, se obtendrn los
sucesivos bi. Este proceso contina hasta obtener una fraccin nula, o hasta que se haya alcanzado el lmite
de precisin requerida.

Por ltimo, se combinan las partes entera y fraccionaria para obtener el resultado final:
23,75 = 10111,011(2
Este proceso, denominado mtodo de las multiplicaciones, puede ser utilizado para convertir nmeros
fraccionarios entre distintos sistemas de numeracin, multiplicando por la base correspondiente. El
multiplicador coincide con la base del sistema numrico de destino.

Arquitectura y Organizacin de Computadoras - 2012

Si bien el mtodo funciona con todos los sistemas de numeracin, el proceso puede llegar a producir
prdidas de precisin. No todas las fracciones representadas en el sistema de numeracin decimal pueden
tener como equivalente un nmero racional exacto en el sistema binario. Por ej. el proceso de conversin
del nmero decimal 0,2 (ver figura), llega a un punto en que se repite en forma peridica

Representacin de nmeros en los sistemas binario, octal y hexadecimal


Si bien los nmeros binarios reflejan la realidad de la representacin interna de los nmeros en la
computadora, tienen como desventaja el hecho de requerir mayor cantidad de dgitos para representar un
nmero que cualquier otro sistema de numeracin posicional. Adems, es ms probable que se cometan
errores al escribir binarios debido a la gran cantidad de ceros y unos que se deben utilizar. Por estas
razones es una prctica comn la conversin a los sistemas octal (base 8) o hexadecimal (base 16),
sistemas estrechamente vinculados al binario. Esta relacin est dada por el hecho de ser estas bases
potencias de 2 (la menor de todas ellas). Por otra parte, la conversin entre estos sistemas es trivial, y
mucho ms sencilla que convertir desde o hacia el sistema decimal.
Para el sistema hexadecimal se requieren seis dgitos ms que en el decimal. Se utilizan letras, de A a F.
Binario
(base 2)
000
001
010
011
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111

Octal (base
8)
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

Arquitectura y Organizacin de Computadoras - 2012

Decimal
(base 10)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Hexadecimal
(base 16)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Al comparar las columnas de la tabla, se observa la necesidad de 3 bits para representar en binario cada
uno de los dgitos del sistema octal, y cuatro para el sistema hexadecimal. En general, se requieren k bits
para representar en binario un dgito del sistema de numeracin de base 2k, siendo k un nmero entero.
Para convertir un nmero del binario al octal, se divide el nmero original en grupos de 3 bits cada uno,
empezando a partir de la coma decimal, completando el grupo ms significativo con ceros, si fuera
necesario. Luego, cada tro de bits se convierte en forma individual al sistema octal. Para conversiones
desde el binario al hexadecimal, se utilizan grupos de 4 bits.
11010,012 = (0112)(0102),(0102) = 32,28
1101101,0112 = (01102)(11012),(01102) = 6D,616

Representacin de Binarios con signo (BCS)


Existen cuatro convenciones distintas de uso habitual en la representacin con signo
1. Mdulo y signo (MS)
El bit que est situado ms 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 mdulo o valor absoluto del nmero.
El rango de representacin es para n dgitos de: [-2n-1+ 1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-127 ... 127]
Por ej.: disponemos de 8 bits y queremos representar los nmeros 10 y -10.
Nmero 10

0 0001010
+ mdulo

Nmero -10

1 0001010
- mdulo

En esta convencin existen dos modos de representar el cero, una negativa y una positiva: 0000 0000 y
1000 0000
2. Complemento a 1 (C-1)
Este sistema de representacin utiliza el bit de ms a la izquierda para el signo, correspondiendo el 0 para
el + y el 1 para el -. Para los nmeros positivos el resto de los bits (n-1) representan el mdulo del nmero.
El negativo de un nmero positivo se obtiene complementando todos sus dgitos (cambiando ceros por
unos y viceversa) incluido el bit de signo.
El rango de representacin es de: [-2n-1+ 1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-127 ... 127]
Este sistema, a semejanza del MS, posee la desventaja de tener dos representaciones del 0, en este caso,
0000 0000 y 1111 1111.
Nmero 10

0 0001010
+ mdulo

Nmero -10 1 1110101


- mdulo

3. Complemento a 2 (C-2)
Este sistema de representacin utiliza el bit de ms a la izquierda para el signo, correspondiendo el 0 para
el + y el 1 para el -. Para los nmeros positivos el resto de los bits (n-1) representan el mdulo del nmero.
El negativo de un nmero positivo se obtiene complementan el nmero positivo en todos sus bits
(cambiando ceros por unos y viceversa) incluido el bit de signo, para luego sumarle 1, despreciando el
ultimo acarreo si existe.
Ejemplo: Nmero 10
0 0001010
Nmero -10.........1 1110101
+1
1
11110110
El rango de representacin es: [-2n-1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-128 ... 127]
Este mtodo tiene la ventaja de poseer una sola representacin para el 0.
Es la convencin ms utilizada en las computadoras.
Arquitectura y Organizacin de Computadoras - 2012

4. Representacin excedida, o Exceso a 2 elevado a n-1


Este mtodo no utiliza ningn bit para el signo, con lo cual todos los bits representan un modulo o valor
que corresponde al nmero representado ms el exceso, que para n bits viene dado por 2 elevado a n-1.
Por ej., para 8 bits el exceso es de 27 = 128. El nmero 10 vendr representado por 10 + 128 = 138. Para el
caso de -10 tendremos -10 + 128 = 118.
Nmero 10 10001010
Nmero -10.....01110110
En este caso, el 0 tiene una nica representacin, que para 8 bits corresponde a:
Nmero 0 ( 0 + 128)  10000000
El rango de representacin es: [-2n-1 ... 2n-1 -1]
Para el caso de 8 bits el rango es [-128 ... 127]
En este mtodo, el valor del exceso tiene el formato del nmero negativo ms grande, lo que produce
como efecto que los nmeros aparezcan ordenados numricamente si se los mira en una representacin
binaria no signada. As, el nmero negativo ms grande es -12810 = 0000 00002 y el ms grande positivo es
12710 = 1111 11112 . Esta representacin simplifica las comparaciones entre nmeros, dado que las
representaciones binarias de los nmeros negativos tienen valores numricamente menores que las
representaciones de los nmeros positivos. Esto se hace importante cuando se representan los exponentes
de los nmeros en coma flotante, donde se requiere comparar los exponentes de dos cantidades para
igualarlos, en caso de ser necesario, para sumar o restar.

Aritmtica del computador


La suma binaria se realiza siguiendo las mismas reglas que en el sistema decimal. Cuando la suma de los
dgitos excede los smbolos numricos disponibles de la notacin, se acarrea un 1 a la posicin de dgito
inmediatamente superior. Por lo tanto, en el sistema decimal, 3+5=8, pero 9+1=0 con acarreo de un 1 (es
decir 10).
En el sistema binario hay solamente dos smbolos, 0 y 1. Por lo tanto, al sumar 1+1 en la notacin binaria
se excede el lmite de la cuenta (ya que no hay otro smbolo disponible) y, en consecuencia, el resultado es
0 con acarreo de un 1 a la posicin de dgito inmediatamente superior.
En la computadora se implementa la operacin de suma mediante circuitos lgicos digitales
combinatorios.
Dos nmeros binarios A y B se suman de derecha a izquierda, generando un bit de suma y uno de arrastre
en cada posicin binaria.

Suma y resta en complemento a dos


Se analizar la resta implcitamente en la suma, como resultado del principio aritmtico segn el cual:
a b = a + (-b), por lo tanto, se puede realizar la resta por medio del nmero complementado de este
mtodo. Como consecuencia, se ahorra en la estructura circuital de la unidad de clculo, dado que se evita
la necesidad de un elemento restador por hardware.
Lo que s debe hacerse al sumar en C-2 es modificar la interpretacin de los resultados de la suma.
A continuacin se plantean dos casos especiales de suma de dos nmeros de 3 bits
0 1 1 (+3)
+ 1 1 1 (-1)
(1)0 1 0 (+2)

0 1 1 (+3)
+ 0 0 1 (+1)
100

Arrastre (carry)

Desborde (overflow)

En el primer ejemplo se produce un acarreo desde la posicin ms significativa (bit de la izquierda). En


este mtodo se descarta dicho acarreo, y el resultado de la operacin es correcto.
En el segundo caso se produce un desbordamiento, y el resultado es errneo. Si bien el resultado parece
un 4 si se lo analiza como un nmero sin signo, al trabajar en forma signada, el primer dgito indica un
nmero negativo, lo que resulta claramente errneo.
Arquitectura y Organizacin de Computadoras - 2012

Suma y resta en complemento a uno


Las consideraciones generales son similares a las de C-2. La diferencia est en el tratamiento del bit de
arrastre que se genera a partir de la posicin ms significativa. Este no se descarta, sino que se vuelve a
sumar con la posicin menos significativa del resultado obtenido.
1 0 0 1 1 (-12)
+ 0 1 1 0 1 (+13)
100000
+
1
00001
Correccin del resultado
El hecho de haber dos representaciones para el cero, y la necesidad potencial de realizar otra suma para
agregar el bit de arrastre son dos razones importantes para que los diseadores prefieran la aritmtica de C2 antes que la de C-1.

Overflow y Carry
Junto con el resultado de cada operacin, la UAL genera varios indicadores (flags) acerca del mismo, que
se conocen por sus iniciales inglesas S,Z,V,C.
Indicador de Signo S=1 indica que el resultado de la operacin es negativo
Indicador Z de resultado cero Z=1 si el resultado es cero (zero)
Indicador C de acarreo C=1 si existe un acarreo (carry)
Indicador V de overflow o desborde V=1 si el resultado de una suma entre nmeros con bit de signo
excede el mayor valor positivo o negativo que se puede representar.
Tanto en la representacin en Ca1 como en Ca2 una operacin puede dar como resultado un nmero que
excede la capacidad de la palabra de memoria, producindose as el overflow.
Al sumar dos nmeros el overflow se puede dar slo si los dos tienen el mismo signo; la suma de dos
nmeros de distinto signo nunca dar como resultado un nmero con mdulo mayor al de mayor mdulo
de los dados, a lo sumo ser igual (al sumarle 0 a otro nmero), pero en general ser menor, por lo tanto no
puede exceder la capacidad de la palabra de memoria.
El overflow se reconoce cuando los bits de signo de los dos nmeros que se suman son iguales entre s
pero distintos del bit de signo del resultado, o sea cuando los nmeros son positivos y da resultado
negativo o viceversa. En este caso el contenido de la palabra de memoria es incorrecta.

Representacin numrica en Punto Flotante


La representacin de nmeros en formato de punto fijo ubica la coma decimal en una posicin fija, por lo
que tiene una cantidad fija y determinada de dgitos tanto a la izquierda como a la derecha de la coma
decimal. Por lo tanto, esta notacin puede requerir una gran cantidad de dgitos para representar algunos
nmeros. Por ej, si queremos representar nmeros del orden del billn, necesitaremos al menos 40 bits,
puesto que 1012 es aproximadamente igual a 240. Por otra parte, si adems se debiera representar una
fraccin equivalente al billonsimo, se necesitarn otros 40 bits, lo que dara por resultado una palabra de
80 bits.
En la prctica, suelen presentarse en los clculos nmeros con 80 o ms bits (ej: distncia al sol, trayectoria
de un misil, etc). Para manejar y almacenar nmeros con 80 o ms bits se requiere una buena cantidad de
hardware, y por otra parte, las operaciones de clculo pueden llegar a resolverse ms lentamente cuando se
trabaja con grandes cantidades de bits.
Para nmeros decimales, esta limitacin se supera utilizando notacin cientfica. As, 976.000.000.000.000
puede representarse como 9,76 * 1014, y 0,0000000000000976 puede expresarse como 9,76 * 10-14. Es
decir, se desplaza convenientemente la coma decimal, incrementando o decrementando adecuadamente el
Arquitectura y Organizacin de Computadoras - 2012

exponente, para mantener la relacin. Esto permite representar un rango de nmeros muy grandes y muy
pequeos con slo unos cuantos dgitos.
Esa misma tcnica puede aplicarse a nmeros binarios, representndolos de la siguiente manera:
+/- S * B +/-E
Este nmero puede almacenarse en una palabra binaria con tres campos
Signo: + o
Parte significativa o mantisa (S  significant)
Exponente (E)
La base B est implcita y no es necesario almacenarla.

Normalizacin y bit implcito


Un nmero representado con este formato, puede tener distintas formas. As, son equivalentes las
siguientes expresiones:
0,110 * 25
110 * 22
0,0110 * 26
Para simplificar los clculos con nmeros en coma flotante, se procede a normalizar. Un nmero
normalizado es el que tiene la forma
+/- 0,1bbbb * 2+/-E
donde cada b es un dgito binario (1 o 0). Se desplaza la coma decimal hasta ubicarla a la izquierda del
dgito no nulo ms significativo. Esto implica que el bit ms a la izquierda de la mantisa fuera siempre 1,
por lo que no sera necesario almacenarlo. La mayora de los mtodos de representacin en coma flotante
no almacenan dicho bit inicial. Lo que se hace es recortarlo antes de empaquetar el nmero para su
almacenamiento, recuperndolo al desempaquetar y llevar el nmero a su representacin de mantisa y
exponente. A raz de este artificio, se obtiene un bit adicional a la derecha de la mantisa, lo que mejora la
precisin de la representacin. Este bit suele denominarse bit implcito. Por ejemplo, si en un formato
determinado la mantisa luego de la normalizacin se representa como 0,11010, el patrn a ser almacenado
es 1010 y el bit ms significativo se oculta.
Como inconveniente, este esquema no permite representar el cero, por lo que su representacin debe
hacerse a travs de un procedimiento de excepcin. Veremos que se incluye una combinacin especial
para representar el cero.
Ejemplo 1: Representar en coma flotante el nmero decimal 34, en C a 2, con 1 bit para el signo, 5 bits
para el exponente y 8 bits para la mantisa, con bit implcito.
- Convertir a binario: 00100010
- Notacin exponencial (normalizar): 00100010 * 20  0,100010 * 26
- Mantisa a almacenar (con bit implcito) 00010
- Exponente: 110
- Empaquetar los elementos, segn especificaciones (rellenar con 0 la mantisa)
0
00110
00010000
Ejemplo 2: Determinar el nmero decimal que representa el patrn 1010110010000, codificado en coma
flotante, con bit oculto, segn las siguientes especificaciones: 1 bit para el signo, 4 bits para el exponente y
8 bits para la mantisa, estos ltimos expresados en MS
- 1 0101 10010000
- Signo: - Exponente: 5
- Mantisa: 0,1 10010000
- Componiendo: - 0,110010000 * 25 = -11001 = -25

Arquitectura y Organizacin de Computadoras - 2012

10

Rango y precisin
La representacin de nmeros en formato de punto flotante permite representar un amplio rango de
nmeros con poca cantidad de dgitos binarios. Para ello se separan los dgitos utilizados para determinar
la precisin (mantisa), de aquellos necesarios para representar el rango (exponente). Supongamos el
nmero decimal en formato de punto flotante
+6,023 * 1023
Segn la convencin vista (ntese que la coma decimal no se almacena)
+
Signo

2 3
Exponente
Dos dgitos

6 0 2 3
Mantisa
Cuatro dgitos

El rango de la representacin queda determinado bsicamente por la cantidad de dgitos del exponente. En
este caso se expresa a travs de una potencia de la base 10 (1023).
La precisin queda determinado por la cantidad de dgitos de la mantisa (cuatro en este ejemplo).
Si se requiere un rango mayor, y si a cambio se est dispuesto a sacrificar precisin, se pueden usar 3
dgitos para la parte fraccionaria y dejar tres dgitos para el exponente, sin necesidad de aumentar la
cantidad de dgitos totales de la representacin.
+

0 2 3

6 0 2

La posibilidad de plantear soluciones de compromiso entre rango y precisin es una de las ventajas
principales de la representacin en punto flotante.
Un inconveniente que presenta este mtodo es que existen valores no representables. El rango de
representacin tiene la estructura:
mNN

MNN

mNP

MNP

mNN es el mnimo nmero negativo = - mxima mantisa * base mximo exponente positivo
MNN es el mximo nmero negativo = - mnima mantisa * base mximo exponente negativo
mNP es el mnimo nmero positivo = mnima mantisa * base mximo exponente negativo
MNP es el mximo nmero positivo = mxima mantisa * base mximo exponente positivo

Ejemplo: considrese una representacin en coma flotante en la que se tiene 1 bit de signo, un exponente
de 2 bits en notacin exceso 2 y una mantisa normalizada binaria, con 3 bits, con el primer 1 no implcito.
Exponente mnimo (representacin en exceso en 2 bits): - 2n-1 = - 2 1 = - 2
Exponente mximo (representacin en exceso en 2 bits): 2n-1 - 1= 2 1 - 1= 1
Mnima mantisa: 0,100
Mxima mantisa: 0,111

mNN = - mxima mantisa * base mximo exponente positivo = - 0,111 * 21


MNN = - mnima mantisa * base mximo exponente negativo = - 0,100 * 2-2
mNP =

mnima mantisa * base mximo exponente

negativo

= 0,100 * 2-2

MNP = mxima mantisa * base mximo exponente positivo = 0,111 * 21

Arquitectura y Organizacin de Computadoras - 2012

11

Estndar del IEEE1 (norma 754)


Existen muchas maneras de representar nmeros en formato de punto flotante. Cada uno tiene
caractersticas propias en trminos de rango, precisin y cantidad de elementos que pueden representarse.
En un esfuerzo por mejorar la portabilidad de los programas y asegurar la uniformidad en la exactitud de
las operaciones en este formato, el IEEE desarroll su norma IEEE 754. Este estndar ha sido ampliamente
adoptado y se utiliza prcticamente en todos los procesadores y coprocesadores matemticos actuales.

Formatos
a) Simple precisin (32 bits)
Signo

Exponente

31

30 - 23

Mantisa
22 - 0

Exponente: 8 bits. Se utiliza una representacin conocida como sesgada.


El sesgo toma el valor (2k-1 1), donde k es el nmero de bits disponibles para la representacin del
exponente. En este caso 28-1 1 = 127. Este sesgo se suma al exponente original, y el resultado es el
que se almacena: E = EO + S
Mantisa: 23 bits. Bit implcito  24 bits efectivos. Est normalizada. La normalizacin toma la forma
1,bb..b, donde el patrn bb..b representa los 23 bits de la mantisa que se almacenan. Ntese que la
coma en esta normalizacin est a la derecha del primer dgito significativo.
b) Doble precisin (64 bits)
Signo

Exponente

Mantisa

63

62 52

51 - 0

Exponente: 11 bits. Sesgo 211-1 1 = 1023


Mantisa: 52 bits. Bit implcito  53 bits efectivos. Igual consideracin para la normalizacin.
Algunas combinaciones se emplean para representar valores especiales. Se presentan los siguientes casos:
-

Un exponente cero junto a una mantisa cero representa el cero positivo o negativo, dependiendo del bit
de signo. (00000000 00000000000000000000000  0)
Un exponente todo unos junto con una mantisa cero representa, dependiendo del bit de signo, el
infinito positivo o el negativo (11111111 00000000000000000000000  )
Un exponente todos unos junto a una mantisa distinta de cero representa un NaN (not a number), y se
emplea para sealar una excepcin (11111111 xxxxxxxxxxxxxxxxxxxxxxx  NaN)

Suma y resta en formato de punto flotante


Las operaciones aritmticas en este mtodo difieren del visto en punto fijo en el hecho de que, adems de
considerarse las magnitudes de los operandos, tiene que considerarse tambin el tratamiento que debe
darse a sus exponentes. Como en el caso habitual de las operaciones decimales en notacin cientfica, los
exponentes de los operandos deben ser iguales para poder sumar o restar. Se suman o restan las mantisas
segn corresponda, y se completa la operacin normalizando el resultado.
Los procesos de ajuste de la mantisa y de redondeo del resultado pueden llevar a una prdida de precisin.
Hay cuatro etapas bsicas en el algoritmo para sumar o restar
Comprobar valores cero
Ajuste de exponente y mantisa
Sumar o restar las mantisas
Normalizar el resultado
1

Instituto de Ingeniera Elctrica y Electrnica de Estados Unidos

Arquitectura y Organizacin de Computadoras - 2012

12

Para la operacin de suma o resta, los dos operandos deben transferirse a registros que sern utilizados por
la ALU. Si el formato incluye un bit de mantisa implcito, dicho bit debe hacerse explcito para la
operacin.
Dado que la suma y la resta son idnticas, excepto por el cambio de signo, el proceso comienza cambiando
el signo del substraendo cuando se trata de una resta. A continuacin, si alguno de los operandos es cero,
se da el otro como resultado.
Luego se procede al ajuste de los exponentes, en sucesivas operaciones. Si en este proceso se obtiene una
mantisa cero, se da el otro nmero como resultado. Esto significa que cuando dos nmeros tienen
exponentes muy diferentes, se pierde el menor de los nmeros.
Luego se suman las mantisas, teniendo en cuenta sus signos. Ya que los signos pueden diferir, el resultado
puede ser cero. Existe tambin la posibilidad de desbordamiento de la mantisa en un dgito. Si es as, se
desplaza a la derecha la mantisa del resultado (se pierde el dgito menos significativo), y se incrementa el
exponente. Como resultado podra producirse un desbordamiento en el exponente. Esto se debe indicar, y
la operacin se detendra.
Por ltimo, se normaliza el resultado.
Ejemplo: sumar (0,101 * 23) + (0,111 * 24)
- Se iguala el menor de los exponentes al mayor, modificando en forma acorde la mantisa
0,101 * 23 = 0,010 * 24
En este proceso se pierde precisin en la cifra menos significativa del valor original
- Se suma: (0,010 + 0,111 ) * 24 = 1,001 * 24
- Se normaliza: 0,1001 * 25
- Se vuelve a redondear a 3 dgitos: 0,100 * 25 perdindose precisin nuevamente

Codificacin de la informacin
Para permitir la comunicacin de datos existe una primera cuestin a tener en cuenta: el Hardware. Pero
esta es solo una parte. Todas las personas del mundo tienen el mismo hardware para la comunicacin
hablada: labios, lengua, dientes y el resto del complejo aparato bucal para transmitir y los odos para
recibir. La comunicacin oral, sin embargo, es posible solamente cuando dos personas conocen el mismo
lenguaje, es decir la misma manera de codificar la informacin.As como el habla sera imposible sin lenguajes comunes, la comunicacin entre computadoras sera
imposible sin coordinacin de cdigos de caracteres.Todas las computadoras digitales actuales usan un lenguaje binario para representar la informacin
internamente. Debido a que algunos de los dispositivos con los que se deben comunicar las computadoras
estn diseados para uso humano (especialmente impresoras y terminales de video), es importante que
esos perifricos utilicen un cdigo de comunicacin compatible con la comunicacin humana.
Existen varios mtodos para alcanzar dicha compatibilidad y cada uno utiliza un modo diferente de
codificar los nmeros y las letras que conforman la base de la comunicacin escrita entre las personas.
Actualmente es frecuente encontrar en un sistema de cmputo dispositivos provistos por distintos
fabricantes. La posibilidad de conectarlos existe nicamente si esos dispositivos utilizan un cdigo comn
para la transmisin y recepcin de la informacin.
Son claras las ventajas de conseguir que todas las computadoras utilicen el mismo cdigo de
comunicacin. An cuando la calidad de los cdigos vara enormemente, casi cualquier estndar universal
sera mejor que ninguno. Si bien hay cdigos que prcticamente son aceptados por todos los fabricantes,
an no existe un estndar que optimice el aprovechamiento de los recursos del hardware.
La codificacin consiste en establecer una ley de correspondencia, llamada CDIGO, entre la
informacin por representar y las posibles configuraciones binarias, de tal manera que a cada informacin
corresponda una y generalmente solo una, configuracin binaria.
Llamamos CODIFICACIN al proceso de convertir un smbolo complejo en un grupo de smbolos ms
simples. Ejemplo: convertir una letra del alfabeto en un cdigo de cinco bits.
DECODIFICACIN es el proceso inverso al de codificacin, se convierte a un cdigo donde la cantidad
de smbolos es menor, pero cada una contiene ms informacin.
TRANSCODIFICACIN: Aplicacin de un cambio de cdigo a una informacin ya codificada.
Ejemplo: de EBCDIC a ASCII.
Arquitectura y Organizacin de Computadoras - 2012

13

Codificacin de la informacin no numrica


A diferencia de los nmeros reales, que tiene un rango infinito, existe slo una cantidad finita de caracteres
representables.
El concepto de caracter aparece como la cantidad de BITS necesarios para representar los diferentes
smbolos del alfabeto (letras, cifras, signos de puntuacin, etc.)
De acuerdo al cdigo utilizado cada caracter puede codificarse con un nmero varible de BITS, pero
dentro de un sistema todos los caracteres se representan con el mismo nmero de bits.
Generalmente, los caracteres se agrupan de la siguiente manera:
Caracteres alfabticos: letras maysculas y minsculas: A-Z, a-z
Caracteres numricos: cifras decimales: 0-9
Caracteres especiales: son caracteres no incluidos en los grupos anteriores y que se utilizan con mucha
frecuencia: / + = ! ? ) ( , . >< #
Caracteres grficos: Suelen representar iconos o figuras elementales:
Caracteres de control: representan ciertas rdenes de control, como control de carro, final de archivo,
tabulacin, etc.

Condiciones que se imponen para la codificacin de caracteres


A) El cdigo debe englobar al de los nmeros, y permitir distinguir las cifras rpidamente de los otros
caracteres.
B) La representacin debe permitir aadir nuevos caracteres especficos para una aplicacin determinada.
C) En el caso de las transmisiones, la representacin debe incluir un sistema de redundancia que permita la
deteccin de errores.
A continuacin se describen tres representaciones habituales en la codificacin de caracteres: los cdigos
ASCII, EBCDIC y Unicode.
1) Cdigo ASCII (American Standard Code for Information Interchange)
El cdigo ASCII se defini inicialmente con 6 bits, esto permita representar 26 = 64 caracteres.
Posteriormente el ANSI (Instituto Nacional Norteamericano de Normas) defini un nuevo ASCII (que se
mantiene como norma) de 7 bits. Esta nueva definicin permite codificar 128 caracteres; hacindolo ms
apto, fundamentalmente para la transmisin, donde parte de los caracteres codifican funciones de
control.
Existen cdigos ASCII ampliados (no normalizados) que usan los 8 bits para codificar una serie de
caracteres grficos especiales, incluidas las vocales con acento.
La mayor parte de las mquinas actuales utilizan el cdigo normalizado, pero generalmente agregan un
octavo bit, que les permite extender el cdigo para representaciones no previstas o para utilizarlo como bit
de control de paridad en las transmisiones. Este cdigo es ampliamente usado para la transmisin de
informacin.
El xito de este cdigo se basa en que cumple con todas las condiciones impuestas para la codificacin de
caracteres:
Los valores correspondientes a las letras del alfabeto y a los restantes caracteres, siguen una secuencia
binaria continua, la computadora no tiene que dejar su propio lenguaje binario para realizar operaciones
secuenciales con esos caracteres. Adems con el agrupamiento de las funciones de control, con solo
analizar los dos primeros bits de una combinacin cualquiera codificada, la computadora puede determinar
si se trata de una funcin de control (dos ceros) o de un caracter (uno de los dos no es cero).
Las maysculas de la A a la Z se codifican segn una sucesin ordenada de nmeros binarios, que permite
realizar ordenaciones alfabticas:
A = 01000001 = 41(16 = 65(10 ; B = 01000010 = 42(16 = 66(10 ; Z = 01011010 = 5A(16 = 90(10
Lo mismo ocurre con los dgitos decimales:
Arquitectura y Organizacin de Computadoras - 2012

14

0 = 00110000 = 30(16 = 48(10 ;

1 = 00110001 = 31(16 = 49(10 ; 9 = 00111000 = 39(16 = 57(10

Existen teclas de control correspondientes a rdenes mecnicas, como la barra espaciadora (SP en ingles,
de SPace), la tecla de retorno de carro a un nuevo rengln (CR de Carry Return), que aparece como
Enter en los teclados, la de retroceso
(BS o Back Space).
Estas teclas sirven para organizar la impresin de caracteres en renglones de un papel o de una pantalla, y
se conocen como caracteres no imprimibles, siendo en esencia rdenes para desplazar el carro de una
mquina de escribir o su equivalente cursor en una pantalla.
Existen diversas maneras de presentacin de una tabla con el cdigo ASCII, las cuales mayormente
indican, por razones de comodidad, o para operar desde el teclado, las equivalencias hexadecimales o
decimales de cada combinacin binaria del cdigo, sin indicar sta. Esto puede observarse en la siguiente
figura, que muestra la tabla de equivalencias a la que se accede desde un editor de texto sin formato.

Representacin de los Nmeros


Cada dgito decimal es representado internamente con 8 bits, distribuidos de la siguiente forma:
ZONA: Es siempre 0011
DIGITO: En este espacio (4 bits) se representa el nmero decimal codificado en BCD
Los datos numricos as codificados no son tcnicamente aptos para ser procesados aritmticamente. Si es
necesario realizar operaciones aritmticas con ellos, se debe eliminar la parte correspondiente a la ZONA
de cada byte. Esta operacin se llama empaque y la informacin resultante, informacin empacada
(empaquetada) o decimal sin zona. Los datos numricos con zona se denominan informacin desempacada
o zoneada.
2) Cdigo EBCDIC(Expanded Binary Code Decimal Interchange Code)
Este cdigo fue diseado y utilizado exclusivamente por IBM. Su importancia radica en que sirvi como
base para los cdigos posteriores normalizados.
Utiliza 8 dgitos binarios para representar cada carcter, por lo tanto hay un total de 28=256 caracteres
posibles. La correspondencia entre la informacin por representar y la correspondiente secuencia binaria
se encuentra en tablas con distintos formatos.
Con respecto a los caracteres alfabticos y signos de puntuacin no tiene caractersticas que lo destaquen,
salvo que podemos encontrar pequeas alteraciones al ser utilizados en pases con distintos alfabetos.
La estructura del Byte segn la representacin es la siguiente:

Arquitectura y Organizacin de Computadoras - 2012

15

5 4

3 2

1 0

Posicin 7 y 6
11- Letras maysculas y nmeros
10 - Letras minsculas.
01 - Caracteres especiales
00 - Ningn carcter encontrado

Posicin 5 y 4
00 - A-I
01 - J-R
10 - S-Z
11 - Nmeros

Representacin de los Nmeros


En este cdigo, al igual que en el ASCII, cada dgito decimal es representado internamente con 8 bits,
distribuidos de la siguiente forma:
ZONA: Ocupa los 4 bits de orden superior del Byte. Tiene una secuencia binaria fija para cualquier
nmero: 1111(2 = F(16
DIGITO: En este espacio se representa el nmero decimal codificado en BCD
Aqu surge el mismo inconveniente visto en el cdigo ASCII: la dificultad para realizar operaciones
matemticas con los nmeros representados con la ZONA. La solucin es la misma que la indicada para el
cdigo anterior. Como la mayor parte de las mquinas utilizan 8 bit para cada dgito no surgen conflictos
al producirse el EMPAQUE.
3) El cdigo UNICODE
Los cdigos ASCII y EBCDIC sirven para soportar los conjuntos de caracteres (latinos) histricamente
dominantes en las representaciones de la computacin. Existen muchos otros conjuntos de caracteres en
uso en el mundo, y no siempre es posible la conversin de cdigo ASCII al cdigo correspondiente al
idioma X. A raz de esto surgi un nuevo conjunto de caracteres, universal y normalizado, al que se conoce
como Unicode, y que sirve para soportar una buena cantidad de alfabetos que se usan en el mundo.
Este cdigo es una norma en desarrollo, que se modifica a medida que se le incorporan los smbolos
correspondientes a alfabetos nuevos, y a medida que los conjuntos de caracteres incorporados se van
modificando y se refinan las correspondientes representaciones. En la versin 2.0 de Unicode se incluyen
38.885 caracteres diferentes, los que cubren los principales lenguajes escritos de uso en Amrica, Europa,
Medio Oriente, Asia, India y las islas del Pacfico.
Utiliza un conjunto de caracteres de 16 bits. Si bien este cdigo soporta muchos ms caracteres que ASCII
y EBCDIC, no es la norma de mayor importancia.
Los primeros 128 caracteres del Unicode coinciden con los del ASCII.
La siguiente figura muestra los smbolos disponibles para insercin desde un documento de Word. En la
ventana puede observarse la disponibilidad de caracteres Unicode y ASCII, y el cdigo decimal o
hexadecimal correspondiente.

Arquitectura y Organizacin de Computadoras - 2012

16

Cdigos redundantes
Es difcil pensar en un equipo que funcione sin fallas durante un tiempo indefinido. Para cualquier
mquina se define un Tiempo Medio Entre Fallas (MTBF). El objetivo de los desarrollos tecnolgicos es
incrementar ese tiempo.
Teniendo en cuenta esa premisa, es de esperar que la informacin pueda verse alterada en el transcurso de
la transmisin o almacenamiento. Si el equipo tiene la posibilidad de detectar o, mejor an, corregir esas
modificaciones, es evidente que aumentar la confiabilidad del mismo. Para este fin, existen dos tipos de
cdigos:

1. Cdigos autodetectores
Cdigo en el que mediante un determinado nmero de bits de redundancia se puede detectar si la
informacin recibida es correcta o no. El ejemplo mas clsico de este tipo de cdigos es el de control de
paridad.
1.1. Control de paridad
Este cdigo, si bien no permite detectar errores dobles, es el ms utilizado debido a su simplicidad y a que
en los ordenadores la probabilidad de que ocurra un error es muy pequea, por lo tanto que ocurran 2 es
mucho menos probable.
Consiste en agregar a los bit de informacin transmitidos un bit mas (generalmente el primero de la
izquierda), que hace que la cantidad de unos transmitidos sea PAR (PARIDAD PAR pone un 0) o
IMPAR (PARIDAD IMPAR pone un 1).
Ejemplo: Se desea enviar los caracteres ASCII A (cdigo decimal 65) y C (cdigo decimal 67) desde
un equipo emisor a otro receptor, utilizando una comprobacin de paridad par:
Emisor (Codificacin del Byte del carcter para comprobacin de paridad PAR)
Arquitectura y Organizacin de Computadoras - 2012

17

Carcter ASCII
A (65)

Cdigo binario del dato


1000001

C (67)

1000011

Bit de paridad
0
(el nmero de unos es par)
1
(el nmero de unos es impar)

Byte completo
0 1000001
1 1000011

Cuando el receptor recibe la informacin lo que har ser volver a contar el nmero de unos que tiene el
dato y comprobar que concuerda con lo especificado en el bit de paridad. Si llega:
Receptor (Comprobacin de paridad PAR)
Byte recibido
0 1000001
1 1000001

Dato
1000001
A
1000001
A

N de unos recibido
2
(par)
2
(par)

Bit de paridad que tiene


0

Error
NO

SI

Se puede detectar que en el segundo carcter transmitido hay un error porque el bit de paridad no
concuerda con lo que se expresa en los bits de datos: el nmero de unos es impar pero el bit de paridad
indica que debera ser par.

2. Cdigos correctores
Mediante el uso de estos cdigos, el receptor puede determinar si la informacin recibida es correcta o no
y en este caso corregir el error producido durante la transmisin.
2.1. Cdigos de Hamming
Estos cdigos permiten detectar y corregir uno o ms errores producidos durante la transmisin para
palabras de cualquier nmero de bits.
Consiste en determinar en cuntos bits difiere la palabra recibida de la enviada, a lo que se llama distancias
de Hamming. Para ello, la informacin n enviada consiste de m bits de datos y r bits redundantes, de
control de paridad, siendo n = m + r
2.2. Control 2 en 3
Para transmitir una informacin cualquiera de n bits, se envan 3 veces esos n bits, en forma sucesiva.
Al receptor de la informacin, al efectuar el anlisis de la misma, pueden presentrsele tres situaciones
distintas:
Las tres son idnticas. La informacin se toma como correcta.
Dos son iguales y una distinta. El cdigo se comporta como AUTOCORRECTOR, selecciona una
de las dos iguales y la toma como correcta.
Las tres son distintas. El cdigo se comporta como AUTODETECTOR, la mquina detecta que
hay error pero no puede determinar cual es la informacin correcta.

Arquitectura y Organizacin de Computadoras - 2012

18

You might also like