Está en la página 1de 24

75.

03 Organizacin del Computador

Apunte de Sistemas de Numeracin

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 1 de 24

75.03 Organizacin del Computador

Introduccin ........................................................................................................ 3 Sistemas de Numeracin no posicionales .......................................................... 3 Sistemas de Numeracin posicionales ............................................................... 3 Aritmtica de Base b .......................................................................................... 4 Cambio de Base ................................................................................................. 5 Nmeros Enteros ........................................................................................ 5 Partes Fraccionarias ................................................................................... 6 Casos Especiales de Cambio de Base ....................................................... 7 Nmeros de Precisin Finita .............................................................................. 8 Representacin de nmeros negativos .............................................................. 8 Signo y magnitud ........................................................................................ 9 Complemento a uno .................................................................................... 9 Complemento a la Base ............................................................................ 11 Complemento a 2 ...................................................................................... 11 Exceso a bn-1 ............................................................................................. 13 Formato y Configuracin .................................................................................. 14 Formato Binario de punto fijo sin signo ......................................................... 14 Formato Binario de Punto Fijo con Signo ..................................................... 15 Formato Empaquetado ................................................................................. 16 Formato Zoneado ......................................................................................... 17 Formato Binario Punto Flotante IEEE 754 .................................................... 17 Formato Binario de Punto Flotante (IBM mainframe) ................................... 23 Cadenas de caracteres ................................................................................. 24

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 2 de 24

75.03 Organizacin del Computador

Introduccin
Las computadoras pueden almacenar datos de diferente ndole, como ser el saldo de una cuenta corriente, el nombre de una persona o la temperatura de una determinada regin. Para ello debe existir una forma de representar el valor $128,5 otra de representar JORGE y otra tambin de representar el valor -10. Estos temas son los que se tratarn a continuacin.

Sistemas de Numeracin no posicionales


Los sistemas de numeracin no posicionales son aquellos en los cuales el valor de un smbolo es independiente de la posicin que ocupa. Un claro ejemplo de esto es el sistema romano. Analicemos un ejemplo: 221 en nmeros romanos es CCXXI

En el 221 decimal el primer 2 tiene un valor de 200 y el segundo de 20, entonces decimos que el smbolo 2 adquiere un valor de acuerdo a la posicin que est ocupando; en cambio en CCXXI ambas C valen 100 y ambas X valen 10 por lo cual el valor de C y X es igual para cualquier posicin.

Sistemas de Numeracin posicionales


En los sistemas de numeracin posicionales el valor de un smbolo depende del lugar que este ocupe dentro del nmero. El ms conocido es el sistema decimal. Generalizando, en un sistema de numeracin posicional de base b en donde la base siempre es igual a la cantidad de smbolos que posee el sistema, en el decimal es igual a 10 dado que tenemos un total de 10 dgitos diferentes (0,1,2,3,4,5,6,7,8,9) la representacin de un nmero se define a partir del Teorema Fundamental de la Numeracin: (ABC,DEF) = Ab2 + Bb1 + Cb0 + Db-1 + Eb-2 + Fb-3 Ej. (423,1)6 = (4x62 + 2x61 + 3x60 + 1x6-1)10 Las generalizaciones ms simples del sistema decimal se obtienen cuando b es un entero no negativo mayor a 1 y cuando los {A,B,C,etc} pertenecen al conjunto de enteros en el rango [0,b). As, cuando b es 2 se obtiene el sistema de numeracin binario, cuando b es 8 el octal y cuando b es 16 el hexadecimal. Pero en general, se podra elegir cualquier b distinto de cero, y los {A,B,C,etc} de cualquier conjunto de nmeros, obteniendo sistemas muy interesantes. (Ej. Base ternaria balanceada: formada por los smbolos 1, 0, 1)

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 3 de 24

75.03 Organizacin del Computador

Siguiendo con el ejemplo anterior, el punto (o la coma dependiendo del smbolo usado) que se encuentra entre C y D se llama punto fraccionario. Cuando b es 10 se lo llama punto decimal y cuando b es 2, punto binario. Los {A,B,C} se llaman dgitos de la representacin. Se dice que un dgito A es ms significativo que B si A est ubicado a la izquierda de B en el nmero. As, el dgito del extremo izquierdo es denominado comnmente el dgito ms significativo y el del extremo derecho el menos significativo. En el nmero del ejemplo el 4 es el dgito ms significativo y el 1 el menos significante; tambin es cierto que 2 es un dgito ms significativo que 3. Dgitos del Sistema Binario: Son el 0 y el 1 y generalmente se denominan Bits. Dgitos del Sistema Octal: Son 0, 1, 2, 3, 4, 5, 6 y 7. Dgitos del Sistema Hexadecimal: Son 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D ,E y F.

Aritmtica de Base b
Las operaciones entre nmeros de base b se lleva a cabo conforme las tablas de adicin y multiplicacin correspondientes a dicha base. Ejemplos: Sistema Decimal + 0 1 2 3 4 5 6 7 8 9 * 0 1 2 3 4 5 6 7 8 9 0 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 10 1 0 1 2 3 4 5 6 7 8 9 2 2 3 4 5 6 7 8 9 10 11 2 0 2 4 6 8 10 12 14 16 18 3 3 4 5 6 7 8 9 10 11 12 3 0 3 6 9 12 15 18 21 24 27 4 4 5 6 7 8 9 10 11 12 13 4 0 4 8 12 16 20 24 28 32 36 5 5 6 7 8 9 10 11 12 13 14 5 0 5 10 15 20 25 30 35 40 45 6 6 7 8 9 10 11 12 13 14 15 6 0 6 12 18 24 30 36 42 48 54 7 7 8 9 10 11 12 13 14 15 16 7 0 7 14 21 28 35 42 49 56 63 8 8 9 10 11 12 13 14 15 16 17 8 0 8 16 24 32 40 48 56 64 72 9 9 10 11 12 13 14 15 16 17 18 9 0 9 18 27 36 45 54 63 72 81
Pgina 4 de 24

Apunte de Sistemas de Numeracin Versin 1.2

75.03 Organizacin del Computador

789 +201 990 Sistema de Base 4 + 0 1 2 3 0 0 1 2 3 1 1 2 3 10 2 2 3 10 11

789 x 2 1578

789 -201 588

3 3 10 11 12

* 0 1 2 3

0 0 0 0 0

1 0 1 2 3

2 0 2 10 12

3 0 3 12 21

1234 + 2014 3304

1234 x 2014 1234 + 312004 = 313234

Cambio de Base
Suponer que se quiere convertir un nmero de base b a p. La mayora de los algoritmos existentes se basan en multiplicaciones y divisiones. Hay tres casos elementales. Nmeros Enteros A. Nb ( )10 ABCDb = (Ab3 + Bb2 + Cb1 + Db0)10 Ejemplos: 346 = (3x61 + 4x60)10 = (22)10 A716 = (10x161 + 7x160)10 = (167)10 B. N10 ( )b Consiste en realizar divisiones sucesivas hasta que el cociente sea menor que el divisor (base deseada), luego juntar el ltimo cociente obtenido junto con todos los restos de abajo hacia arriba. Ejemplos: 34 |2 0 17 |2 1 8 |2 0 4 |2 0 2 |2 0 1 Hemos llegado al final de las divisiones sucesivas notar que 1 < 2
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 5 de 24

3410 ( )2

75.03 Organizacin del Computador

El resultado final es (100010)2 34 |16 2 2 Hemos llegado al final de las divisiones sucesivas notar que 2 < 16 El resultado final es (22)16
C.

3410 ( )16

Nb ( )p

Para resolver este cambio de base se utiliza la combinacin de los dos mtodos anteriormente explicados. 1) 2) Nb ( )10 ( )10 ( )p

Ejemplo 324 ( )6 1) Nb ( )10 324 ( )10 324 = (3x4 + 2)10 = 1410

2)

( )10 ( )p 1410 ( )6 14 |6 2 2 2 < 6 por lo tanto, resultado final (22)6

Es decir que el 34 en base 4 corresponde al 22 en base 6, en otras palabras: 324 = 226 Partes Fraccionarias A. 0,Nb ( )10 0,ABC b = (Ab-1 + Bb-2 + Cb-3)10 Ejemplo: 0,1324 = (1x4-1 + 3x4-2 + 2x4-3)10 = 0,4687510 B. 0,N10 ( )b Se resuelve mediante multiplicaciones sucesivas tomando de cada resultado la parte entera. Se termina cuando la parte fraccionaria es igual a cero. En caso de no llegar a este resultado cuantos ms decimales se toman mayor precisin se alcanza. Ejemplo: 0,12510 ( )2 0,125 x 2 = 0,250 0,250 x 2 = 0,500 0,500 x 2 = 1,000 0 0 1

0,12510 = 0,0012
Pgina 6 de 24

Apunte de Sistemas de Numeracin Versin 1.2

75.03 Organizacin del Computador

C.

0,Nb ( )p

A igual que lo visto para nmeros enteros primero se realiza el cambio 0,Nb ( )10 y finalmente se pasa de ( )10 ( )p. Ejemplo 0.0012 ( )4 1) Nb ( )10 0.0012 ( )10 2) ( )10 ( )p 0,12510 ( )4

0,0012 = (1x2-3)10 = 0,12510

0,125 x 4 = 0,5 0,500 x 4 = 2.0

0 2

Es decir que el 0.001 en base 2 corresponde al 0.02 en base 4, en otras 0,0012 = 0,024 Recordar: Si se tiene un nmero que posee parte entera y fraccionaria se realiza el cambio para cada parte por separado y luego se suman los resultados obtenidos. Ejemplo: 354,10216 ( ) 10 354,10216 = 35416 ( )10 + 0,10216 ( )10 354,10216 = 3x162 + 5x161 + 4x160 + 1x16-1 + 2x16-3 Casos Especiales de Cambio de Base a) bx = p Se irn formando grupos de x dgitos y se har el cambio para cada uno de estos grupos en forma independiente. Para la parte entera se empiezan a formar los grupos de derecha a izquierda en caso de ser necesario se completa con ceros a izquierda. Para la parte fraccionaria se comienza a formar los grupos de izquierda a derecha y de ser necesario se completa con ceros a derecha. Ejemplo: 101102 ( )8 (010 | 110)2 = 268 1102 = 68 0102 = 28 b) b1/x = p Cada dgito en la base b se expandir en x dgitos en la base p.
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 7 de 24

23 = 8

tomo de 3 dgitos

75.03 Organizacin del Computador

Ejemplo: AE7516 ( )2 516 = 01012 716 = 01112 E16 = 11102 A16 = 10102 161/4 = 2 se expande en 4 dgitos binarios

(1010111001110101)2

Nmeros de Precisin Finita


Al hacer operaciones aritmticas, en muy raras ocasiones uno se preocupa por la cantidad de dgitos decimales que son necesarios para representar a un nmero. Se puede calcular que hay 1078 electrones en el universo sin molestarse por el hecho de que se requieren 79 lugares decimales para escribir el nmero completo. Una persona que evala una funcin a mano buscando una solucin de 6 dgitos significativos, simplemente trabaja con resultados intermedios de 7,8 o cuntos dgitos necesite. Con las computadoras las cosas son bastantes diferentes. En la mayora la cantidad de memoria disponible para guardar nmeros se fija en el momento de su diseo. La cantidad de dgitos disponibles para representar un nmero siempre ser fija. Llamaremos a estos nmeros: nmeros de precisin finita. Desafortunadamente el conjunto de los nmeros de precisin finita no es cerrado con respecto a las operaciones aritmticas bsicas. Analicemos un ejemplo con los nmeros enteros positivos de tres dgitos: 600 + 600 = 1200 (muy grande) 003 005 = -002 (negativo) 050 x 050 = 2500 (muy grande) 007 / 002 = 3,5 (no es un entero) Las exclusiones se pueden dividir en dos grupos: las operaciones cuyo resultado es mayor al mximo nmero del conjunto o menor al mnimo nmero del conjunto (error de overflow), y las operaciones cuyos resultados simplemente no pertenecen al conjunto.

Representacin de nmeros negativos


En general los nmeros negativos en cualquier base b se representan del modo habitual, precedindolos con un signo . En cambio en una computadora (sistema binario) existen 4 mtodos posibles que son: Signo y magnitud Complemento a uno Complemento a la base Exceso a bn-1-1

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 8 de 24

75.03 Organizacin del Computador

Signo y magnitud Para representar un nmero signado de n-bits usando el mtodo de signo y magnitud consiste en: 1) un bit para representar el signo. Ese bit a menudo es el bit ms significativo y, por convencin se usa un 0 para nmeros positivos ,y 1 para los negativos; 2) los n-1 bits restantes para representar el significando que es la magnitud del nmero en valor absoluto. Ejemplo: Usando 8 bits 1 bit para el signo y 7 bits para la magnitud; queremos representar el nmero -9710. Procedemos a: a) Mirar el signo del nmero -9710, apreciamos que es negativo, llevar como bit de signo un 1; b) Realizar la conversin: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012; c) Colocar todo junto el nmero -9710 queda representado de la siguiente manera usando Signo y Magnitud: 111000012. Donde el 1 en el bit ms significativo indica un nmero negativo, y 11000012 es el significando en valor absoluto. Para el caso inverso, dado un nmero binario en Signo y Magnitud de 8 bits, por ejemplo, 101101012, procedemos a: 1) Analizar el bit ms significativo, que siendo un 1 indica que el nmero es negativo; 2) Convertir el significado a la base deseada, por ejemplo, en decimal, tomando en cuenta que el valor obtenido est en valor absoluto y la magnitud real estar dada por el bit de signo obtenido antes 01101012 = |5310|. 3) Siendo que el bit de signo es 1, el nmero real es -5310. Si el bit de signo fuese 0, el nmero hubiese sido +5310. Ventajas y desventajas Posee un rango simtrico es decir para n-bits, el rango en decimal es (-2n-1-1; 2n-1-1); usando n=8, los nmeros van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 = 100000002, hasta el -12710 = 111111112 Con esta ventaja podemos apreciar fcilmente las desventajas que se tienen: No permite operar aritmticamente ya que se obtienen resultados incorrectos. Ej. 000101012 + 111000012 = 111101102 (-11810) -7610 +2110 + -9710 = -7610 Posee doble representacin del cero. Al representar en Signo y Magnitud, aparece el cero signado: 000000002 (+010) y 100000002 (-010). Complemento a uno Este mtodo es otra alternativa para representar nmeros negativos y consiste en aplicarle un NOT bit a bit al nmero, es decir en otras palabras, la inversin de unos por ceros y ceros por unos. De esta forma, la representacin por Complemento a Uno de un nmero signado de n-bits es:
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 9 de 24

75.03 Organizacin del Computador

1) un bit para representar el signo. Ese bit a menudo es el bit ms significativo y, por convencin un 0 es para los positivos, y un 1 para negativos; 2) los n-1 bits restantes para representar el significando que es la magnitud del nmero en valor absoluto para el caso de nmeros positivos, o bien, es el complemento a uno del valor absoluto del nmero, en caso de ser negativo. Ejemplo: Con 8 bits, tenemos 1 bit para el signo y 7 bits para la magnitud. Entonces para representar el nmero -9710 procedemos a: a) Tomar nota del signo del nmero -9710, que siendo negativo, llevar como bit de signo un 1; b) Como el signo es negativo, el nmero a continuacin del bit de signo, deber expresarse en complemento a uno. Al realizar la conversin: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es C1(1100001) = 00111102; c) Colocar todo junto, por lo tanto el nmero -9710 en binario con el mtodo de Complemento a Uno es: 100111102. Donde el 1 en el bit ms significativo indica un nmero negativo, y 00111102 es el significando en complemento a uno del valor absoluto del nmero. Para el caso inverso, dado un nmero binario en Complemento a uno de 8 bits, por ejemplo, 101101012, realizamos lo siguiente: 1) Analizar el bit ms significativo, que siendo un 1 indica que el nmero es negativo; 2) Convertir el significado a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido est en valor absoluto y que la magnitud real estar dada por el bit de signo obtenido antes, en caso de que el bit del signo sea negativo (como es el caso) se deber obtener el complemento a uno; aplicarle el NOT al significado C1(0110101) = 10010102 = |7410| . 3) Siendo que el bit de signo es 1, el nmero real es -7410. Si el bit de signo fuese 0, el nmero hubiese sido 01101012 = +5310 (no se complementaria). Ventajas y desventajas Las desventajas son: Posee doble representacin del cero

000000002 = +010 111111112 = -010 Mientras que las ventajas de la representacin en Complemento a uno son: Posee un rango simtrico tomando como ejemplo n = 8 como la cantidad de bits: los nmeros van del +127 10 = 011111112, pasando por el +010 = 000000002 y el -010 = 111111112, hasta el -12710 = 100000002. Generalizando, para n-bits, el rango (en decimal) para Complemento a uno es (-2n-1-1; 2n-1-1) Permite operar aritmticamente y para obtener el resultado correcto al operar se debe sumar el acarreo obtenido al final de la suma/resta realizadas en caso de haberlo obtenido, este acarreo se lo conoce con el nombre de end-around carry. Por ejemplo:
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 10 de 24

75.03 Organizacin del Computador

a) 000101012 + 100111102 = 101100112 (+2110 + -9710 = -7610) end-around carry = 0; b) 000000102 + 111111102 = 1000000002 (+210 + -110 = 010 +110), que corregimos mediante 000000102 + 111111102 = 000000002 + 12 = 000000012, que es el resultado correcto, se puede apreciar el end-around-carry = 1

Complemento a la Base El complemento de un nmero dado en una base es aquel que sumado al nmero original da la base a la n, siendo n la cantidad de dgitos que componen a ese nmero. Formalmente, el complemento a b de un nmero r, representado en n dgitos en base b se define como: Cb(rb) = (10n01) rb Ntese que el nmero que se utiliza como minuendo tiene un dgito ms que los usados en la representacin, es decir n+1 dgitos, un 1 seguido de n ceros a la derecha. Usando el complemento a 10 de 13579 10 C10(1357910) = 100000 13579 = 8642110 Ejemplo: El concepto de complemento puede ser usado para transformar una operacin de resta de dos nmeros en la suma de uno de ellos ms el complemento del otro. Veamos a continuacin como se aplicara esto: AB=d A B + bn = d + bn donde bn - B = B complemento A + Bcomp = d + bn a) A = 1037610 y B = 23410 con n = 5 A-B =d A + Bcomp = d + bn Bcomp = 10000010 23410 = 9976610 1037610 + 9976610 = d + 10000010 11014210 = d + 10000010 1014210 = d b) A = 1012 y BA B + Acomp 10002 + 10112 100112 112 = d B = 10002 con n = 4 =d = d + bn Acomp = 100002 1012 = 10112 = d + 100002 = d + 100002

Complemento a 2 Permite representar nmeros negativos en el sistema binario y la realizacin de restas mediante sumas. Tener en cuenta que estos nmeros negativos estn
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 11 de 24

75.03 Organizacin del Computador

representados a travs de su complemento. Es decir un nmero ms su negativo (inverso aditivo), nos da un nico cero a + (-a) = 0 El complemento a 2 de un nmero X2 se obtiene de sumar 1 al nmero negado bit a bit de X2, en otras palabras Not (X) + 1 Ejemplo: C2(011012) = 10010 + 00001 = 100112 Complemento a 2 con 4 bits. Decimal -8 -7 -6 -5 -4 -3 -2 -1 Complemento a2 1000 1001 1010 1011 1100 1101 1110 1111 Decimal +0 +1 +2 +3 +4 +5 +6 +7 Complemento a2 0000 0001 0010 0011 0100 0101 0110 0111

Supongamos que queremos representar el nmero -9710 usando 8 bits n = 8. Procedemos a: a) Tomar nota del signo del nmero -9710, que siendo negativo, llevar como bit de signo un 1; b) Como el signo es negativo, el nmero deber expresarse en complemento a dos. Aplicamos el Not al valor absoluto y le sumamos 1, en otras palabras: Not(9710) + 1 Que en binario es: Not(011000012) + 1 = 100111102 + 1 = 100111112 (complemento a dos); Para el caso inverso, dado un nmero binario en Complemento a 2, por ejemplo, 101101012, y teniendo en cuenta que n = 8, lo que debemos hacer es: 1) Analizar el bit ms significativo, que siendo un 1 indica que el nmero es negativo; 2) Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido est en valor absoluto, que la magnitud real estar dada por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es el caso) se deber obtener el complemento a dos: C2 (10110101) = Not (10110101) + 1 = 010010102 + 1 010010112 = |7510|. 3) Siendo que el bit de signo es 1, el nmero real es -7510. Si el bit de signo fuese 0, el nmero hubiese sido 001101012 = +5310 (sin complementar a dos). Ventajas y desventajas Usando n = 8 bits como ejemplo podemos decir que: Desventajas: Posee un rango asimtrico de nmeros los nmeros van del +12710 (011111112) pasando por el +010 (000000002). Pero el 111111112, ya no es -010 como en la representacin anterior, sino que es -110 y al llegar al 100000002 nos encontramos con que el
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 12 de 24

75.03 Organizacin del Computador

complemento a 2 de 100000002 es el mismo valor 100000002. Por lo tanto por convencin, se asigna a este nmero particular el valor de -12810 (para 8 bits). Generalizando el rango decimal para n-bits, usando el Complemento a 2 es (-2n-1; 2n-1-1). Ventajas: No posee doble representacin del cero. Permite operar aritmticamente. Exceso a bn-1 Otro mtodo para representar un nmero signado de n-bits consiste en: 1) Tomar el valor real del nmero a representar; 2) Sumarle la base elevada segn la cantidad de dgitos menos 1 que se tienen disponibles; Esto se lo conoce como representacin en Exceso a bn-1, puesto que a cada nmero se le suma el mismo valor y est en exceso por dicho valor. El formato en exceso es habitual para la representacin del exponente en nmeros en punto flotante, por ejemplo, para la norma IEEE-754, con una salvedad ya que el exceso es calculado de la siguiente manera: x + 2n-1-1. Ejemplo de Exceso 2n-1 Siendo n = 8 la cantidad de bits disponibles, los nmeros sern representados en Exceso de 28-1 = 12810. Cabe destacar que con 8 bits, podemos representar, 28 = 256 nmeros. Ahora, supongamos que tenemos que representar el nmero -9710 (decimal), la manera de representarlo usando Exceso 2n-1 es la siguiente: a) Tomar el nmero -9710 y sumarle el exceso, en este caso 12810 -9710 + 12810 = 3110; b) Convertimos a binario 3110 = 000111112. Para el caso inverso, dado un nmero binario en Exceso 12810, por ejemplo, 101101012, procedemos a: 1) Convertir el nmero a la base deseada 101101012 = 18110; 2) Pero el valor obtenido est en exceso a 128, entonces debemos quitarle dicho exceso, restando 128 18110 - 12810 = 5310. Ventajas y desventajas de Exceso 2n-1 Siguiendo con n = 8, las desventajas son: Requiere de operaciones aritmticas intermedias para su obtencin, y de cambiar el nmero de bits se deben actualizar dichas operaciones intermedias para reflejar el nuevo exceso. Posee un rango asimtrico que va desde +12710 = 111111112 hasta el -12810 = 000000002. Generalizando el rango en decimal para exceso es (-2n-1; 2n-1-1). Y las ventajas son:
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 13 de 24

75.03 Organizacin del Computador

No hay empaquetacin del nmero. Esto significa que no hay que recordar que partes del nmero son signo y valor, sino que el nmero esta formado por los n-bits. Permite operar aritmticamente, teniendo en cuenta que cada operacin lleva asociado su exceso y debemos restarlo al resultado final para obtener la correcta representacin. Por ejemplo: o 000111112 + 101101012 = 110101002 o -9710 + 5310 = 8410 -4410 Al resultado obtenido debemos quitarle dicho exceso: 8410 - 12810 = -4410 (10101002)

Formato y Configuracin
Es importante tener en claro los conceptos de Formato y Configuracin. Cuando hablamos de Formato nos referimos a la representacin computacional de un nmero. Ejemplos: Binario de Punto Fijo sin Signo Binario de Punto Fijo con Signo Empaquetado Zoneado Binario de Punto Flotante En cambio la configuracin es la representacin en una determina base de un nmero en un formato. Ejemplo: 1510 = 11112 Usando 16 bits, 00000000000011112 es la configuracin binaria de un BPF sin signo Expansin y truncamiento Cuando hablamos de Expandir formato, nos referimos a completar su representacin computacional sin alterar el nmero representado en el mismo. Mientras que, cuando hablamos de Truncar formato, nos referimos a descartar dgitos de su representacin sin alterar el nmero representado en el mismo.

Formato Binario de punto fijo sin signo Base: 2 Representa: Nmeros enteros positivos. Mximo: (2n 1)10

Cmo almacenar un nmero en el formato?


Apunte de Sistemas de Numeracin Versin 1.2 Pgina 14 de 24

75.03 Organizacin del Computador

1) Pasar el nmero a base 2. 2) Completar con ceros a izquierda la capacidad (cantidad de bits) del formato. Ejemplo: Capacidad: 8 bits 1) 2710 = 110112 2) 000011012 Nro.: 2710

Cmo recuperamos un nmero en el formato? Se realizan en orden inverso los pasos para almacenar. Expansin y truncamiento Expandir formato: se completa con ceros a izquierda. 000110112 8 bits 000000000001100112 16 bits Truncar formato: Si es posible se sacan ceros a izquierda. 000011012 8 bits 11012 4 bits 000101112 8 bits No es posible truncarlo a 4 bits

Formato Binario de Punto Fijo con Signo Base: 2 Representa: Enteros positivos y negativos. El primer bit se reserva para el signo: 0 (+) y 1 (-). Mximo: 2n-1 1 Mnimo: -2n-1

Cmo almacenar un nmero en el formato? 1) Pasar el nmero a base 2. 2) Completar con ceros a izquierda. 3) Si es un nmero negativo Complemento a 2. Ejemplo:

complementar

usando

mtodo

-12510 BPF con signo 8 bits 1) -12510 = -11111012 2) 011111012 3) Mtodo Complemento a 2: a. Aplico el Not (011111012) = 100000102 b. Sumo 1 c. 100000112 Resultado final BPF c/s 8 bits

En el ejemplo anterior podemos notar que una vez complementado, se obtiene el bit del signo 1. Cmo recuperamos un nmero en el formato?

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 15 de 24

75.03 Organizacin del Computador

1) Si el bit de signo (primero de izquierda) es 1, eso implica que el nmero es negativo, por lo tanto debemos complementarlo antes, sino dejamos el nmero tal cual est. 2) Quitar los 0 a izquierda. 3) Pasar de base 2 a base 10 4) Colocar el signo que corresponde. Expansin y Truncamiento Expansin: Se completa con el bit de signo a la izquierda. Ej: 10110101 BPF c/s 8 bits BPF c/s 16 bits 1111111110110101 Truncamiento: Se extraen bits a izquierda siempre y cuando no se est alterando el bit de signo del nmero. Ej: 00000011 BPF c/s 8 bits BPF c/s 4bits 00000011 00001011 BPF c/s 8 bits BPF c/s 4 bits 00001011 No se puede ya que representan nmeros diferentes

Formato Empaquetado Base: 16. Representa: Enteros positivos y negativos. Mximo: 102n-1-1 Mnimo: -102n-1+1 9 9 9 9 9 9 9 S

Un byte se divide en dos conjuntos de 4 bits (uno a la izquierda y el otro a la derecha) a cada grupo se lo denominado NIBBLE, en otras palabras, el NIBBLE es el conjunto de cuatro dgitos binarios. Cmo guardar un nmero en el formato? 1) Pasar el nmero a base 10. 2) Colocar cada dgito decimal en un nibble, dejando el ltimo nibble ya que en el mismo se almacena el signo. 3) Colocar en el ltimo nibble el signo segn: C,A,F,E indican positivo. D,F indican negativo. Ejemplo: -12710 Empaquetado de 3 bytes 0 0 1 2 7 D Nota: se rellena con 0 hasta alcanzar la cantidad de bytes usados

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 16 de 24

75.03 Organizacin del Computador

Cmo recuperamos un nmero en el formato? Se realizan en orden inverso los pasos para almacenar Formato Zoneado Base: 16. Representa: Enteros positivos y negativos. Mximo: 10n - 1 Mnimo: -10n + 1 F 9 F 9 F 9 S 9 Cmo almacenar un nmero en el formato? 1) Pasar el nmero a base 10. 2) Colocar cada uno de los dgitos decimales en un Nibble derecho. 3) Completar todos los Nibbles de izquierdo con F salvo el ltimo que se completa con el signo siguiendo las mismas reglas que para empaquetados. C,A,F,E indican positivo. D,F indican negativo Ejemplo: -127 Zoneado de 4 Bytes. F 0 F 1 F 2 B 7 Nota: se rellena con F0 hasta alcanzar la cantidad de bytes usados Cmo recuperamos un nmero en el formato? Se realizan en orden inverso los pasos para almacenar

Formato Binario Punto Flotante IEEE 754 Un poco de historia: Hasta 1980, cada fabricante tena su propio sistema de representacin de nmeros de punto flotante. No slo todos eran diferentes sino que algunos cometan errores de aritmtica, dado que los nmeros de punto flotante tienen algunos detalles que no son obvios al disear hardware. Para corregir esta situacin, a fines de los 70 la IEEE estableci un comit para fijar una representacin estndar para los nmeros de punto flotante, no slo para permitir el intercambio de nmeros de punto flotante entre diferentes computadoras, sino para dar tambin a los diseadores de hardware un modelo correcto. Como resultado, en 1985 surgi el estndar 754 de la IEEE. En la actualidad, la mayora de las CPUs tiene una unidad de punto flotante, y todas stas siguen al estndar fijado por la IEEE.
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 17 de 24

75.03 Organizacin del Computador

El estndar define tres formatos: precisin simple (32 bits), precisin doble (64 bits) y precisin extendida (80 bits). Tanto los nmeros de precisin simple como los de precisin doble usan base 2 para las fracciones y notacin exceso (quiere decir que si el exceso es m cualquier nmero n se representar como n + m) para los exponentes. Los formatos utilizados se muestran en la figura 2. Los dos formatos comienzan con un dgito indicando el signo del nmero, siendo 0 positivo y 1 negativo. Luego sigue el exponente, que se representa en notacin exceso 127 para los nmeros de precisin simple y exceso 1023 para los nmeros de precisin doble. Los exponentes 0 y 255 2047 (segn la precisin) no se utilizan para nmeros normalizados, si no que tienen usos especiales que se describirn luego. Finalmente se tiene la fraccin, de 23 y 52 bits respectivamente.

Simple precisin Bits 1 8 23

Signo

Exponente

Fraccin

Doble precisin Bits 1 11 52

Signo

Exponente

Fraccin

Figura 2: Esquema de los nmeros de punto flotante de la IEEE Una fraccin normalizada comienza con el punto binario, seguido de un bit 1 y el resto de la fraccin. Como se puede suponer que en una fraccin normalizada siempre el primer bit despus del punto ser un 1, no es necesario guardar ese primer bit. Consecuentemente, el estndar define a la fraccin de una manera un poco inusual. La fraccin consiste de un primer bit 1 implcito, un punto binario implcito, y 23 o 52 bits arbitrarios. Si todos estos bits son cero, la fraccin tiene un valor de 1,0; si todos son 1s, la fraccin es numricamente apenas menor que 2. Todos los nmeros normalizados tendrn una fraccin f, en el rango 1 f 2. tem Bits en el signo Bits en el exponente Bits en la fraccin Total de bits
Apunte de Sistemas de Numeracin Versin 1.2

Precisin simple 1 8 23 32

Precisin doble 1 11 52 64
Pgina 18 de 24

75.03 Organizacin del Computador

Sistema del exponente Rango del exponente Mnimo, normalizado Mximo, normalizado Rango decimal Mnimo, renormalizado Tabla 3: Caractersticas de la la IEEE

Exceso 127 Exceso 1023 -126 a 127 -1022 a 1023 -126 2 2-1022 +128 aprox. 2 aprox. 2+1024 -38 38 aprox. 10 a 10 aprox. 10 -308 a 10 308 aprox. 10-45 aprox. 10.324 representacin de punto flotante del estndar de

Ejemplo: Los nmeros 0,5, 1 y 1,5 se representan en formato de punto flotante de precisin simple normalizado con las cadenas hexadecimales 3F000000, 3F800000 y 3FC00000 3F000000 representa a los bits 0 01111110 00000000000000000000000 Signo: 0 (positivo) Exponente: 011111102 = 126 Exceso 127: 126 - 127 = -1 Bits de la fraccin: 0000000000000000000000 Luego agregamos el 1 implcito: 1.0000000000000000000000, y como resultado final obtenemos: 1,000000000000000002 x 2-1 = 0,12 x 20 = 0,5 La verificacin de los otros dos nmeros se deja para el lector. Ancho de Paso Marca cul es la distancia entre un flotante y su siguiente nmero representable en el formato. Es importante visualizar que el ancho de paso no es el mismo para todos los nmeros flotantes. A mayor exponente mayor ancho de paso. Overflow y Underflow Al trabajar con nmeros de punto flotante podemos encontrarnos con distintas situaciones en la ejecucin de instrucciones con estos nmeros. Los problemas que pueden surgir son los de Overflow y Underflow. Ahora bien, pasemos a dar una breve definicin de estos. Overflow: Se refiere a la condicin de que el exponente resultante exceda el lmite superior, tanto para mantisas positivas como negativas, dando lugar a +, -. Underflow: Se refiere a la condicin de que el exponente resultante exceda el mnimo valor permitido y caiga en el intervalo (-, -0) y (+0, +). Es de observar que el verdadero cero al origen de coordenadas es una excepcin. En otras palabras, cero no cae en el intervalo (-, -0) y (0+, +). Como vimos anteriormente uno de los problemas que surgen al trabajar con nmeros de punto flotante es el manejo del overflow, underflow y nmeros no inicializados. El estndar trata con estos problemas de manera explcita, y define adems de los nmeros normalizados, otros cuatro tipos de nmeros, que se muestran a continuacin.

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 19 de 24

75.03 Organizacin del Computador

Normalizado Desnormalizado Cero Infinito NAN

0 Exp Max Cualquier patrn de bits 0 0 1111 1111 Cualquier patrn de bits 0 0 0 Cualquier patrn de bits 0

Cuando el resultado de una operacin es un nmero menor al mnimo nmero de punto flotante normalizado que puede ser representado, surge un problema. En un principio la mayora de los diseos de hardware sigui una de dos alternativas para resolver este problema: Se estableca el resultado como cero y se continuaba, o se causaba una excepcin de punto flotante. Ninguna de estas es realmente satisfactoria, as que la IEEE invent los nmeros desnormalizados. Estos nmeros tienen como exponente al cero1 y el bit 1 que se hallaba implcito a la izquierda del punto binario es ahora un 0 implcito. Los nmeros desnormalizados se distinguen de lo normalizados porque estos ltimos no permiten al cero como exponente. El menor nmero normalizado de precisin simple tiene un 1 como exponente y un cero como fraccin, representando al 1.0 x 2 -126. El mayor nmero desnormalizado tiene un cero como exponente y todos 1s como fraccin, representando aproximadamente 0.999999 x 2-126, valor muy similar al anterior. Pero vale la pena notar que este ltimo tiene solamente 23 bits significativos, mientras que todos los normalizados tienen 24. A medida que las operaciones hacen a este nmero an ms chico, el exponente sigue siendo cero y los primeros bits de la fraccin se transforman en ceros, reduciendo por lo tanto el valor de la fraccin y la cantidad de bits significativos. El nmero desnormalizado ms chico consiste de un 1 en la posicin menos significativa de la fraccin, y ceros en las posiciones restantes. En este caso el exponente es -126 y la fraccin representa 2-23, siendo entonces el valor del nmero 2-232-126 = 2-149. Existen dos formas de representar al cero en este esquema: una con el bit de signo en 1 y la otra con el bit de signo en 0. Ambas tienen un exponente cero y una fraccin cero. Tambin en este caso el bit a la izquierda del punto binario es un cero implcito en lugar de un uno implcito. No existe para el overflow un manejo anlogo al del underflow. No hay ms combinaciones de bits disponibles. En cambio, se provee de una

1 Cuando se dice que el exponente es cero se quiere decir que todos los bits que representan al exponente son cero.
En el caso de los nmeros desnormalizados no se emplea la notacin exceso m, sino que el verdadero valor del exponente es fijo y depender de la precisin: -126 para los nmeros de precisin simple y -1022 para los de doble.
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 20 de 24

75.03 Organizacin del Computador

representacin especial para infinito, que consiste de un exponente de todos 1s (no permitido para nmeros normalizados) y una fraccin 0. Este nmero se puede usar como un operando y se comporta segn las reglas matemticas para el infinito. Por ejemplo, infinito + algo es infinito y cualquier nmero finito dividido infinito es cero. De manera similar, cualquier nmero finito dividido cero resulta en infinito. Qu pasa al evaluar infinito dividido infinito? El resultado no est definido. Para manejar este caso se provee otro formato especial, llamado Nan (Not a number), que tambin se puede usar como un operando con resultados predecibles. Significados Especiales: Como se mencion anteriormente, otra de las caractersticas del formato IEEE 754 es la existencia de configuraciones especiales para representar sucesos inusuales: Cero: Puesto que el significando se supone almacenado en forma normalizada, no es posible representar el cero (se supone siempre precedido de un 1). Por esta razn se convino que el cero se representara con valores 0 en el exponente y en el significando. Ejemplo: 0 00000000 00000000000000000000000 = +0 1 00000000 00000000000000000000000 = -0 Infinitos: Se ha convenido que cuando todos los bits del exponente estn a 1 y todos los del significando a 0, el valor es +/- infinito (segn el valor S). Esta distincin ha permitido al Estndar definir procedimientos para continuar las operaciones despus que se ha alcanzado uno de estos valores (despus de un overflow). Ejemplo: 0 11111111 00000000000000000000000 = +Infinito 1 11111111 00000000000000000000000 = -Infinito Valores no-normalizados (denominados tambin "subnormales"). En estos casos no se asume que haya que aadir un 1 al significado para obtener su valor. Se identifican porque todos los bits del exponente son 0 pero el significado presenta un valor distinto de cero (en caso contrario se tratara de un cero). Ejemplo: 1 00000000 00100010001001010101010 Estos valores sirven para disminuir el hueco entre el 0 y el nmero normalizado ms pequeo, Permiten reducir paulatinamente la magnitud de un nmero hasta llegar a 0. Valores no-numricos: Denominados NaN ("Not-a-number"). Se identifican por un exponente con todos sus valores a 1, y un significando distinto de cero. Existen dos tipos QNaN ("Quiet NaN") y SNaN ("Signalling NaN"), que se distinguen dependiendo del valor 0/1 del bit ms significativo del significando. QNaN tiene el primer bit a 1, y significa "Indeterminado", SNaN tiene el primer bit a 0 y significa "Operacin no-vlida".
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 21 de 24

75.03 Organizacin del Computador

Ejemplo: 0 11111111 10000100000000000000000 = QNaN 1 11111111 00100010001001010101010 = SNaN Por ejemplo, dar como resultado una tira de bits que representa +1 o -1 como resultado de dividir por 0. El smbolo especial para este tipo de operaciones no validas es un NaN (Not a Number).

Cmo almacenar un nmero en el formato? Usaremos los siguientes ejemplos para explicar como almacenamos un nmero en BPFlotante IEEE 754 de precisin simple: A = -6,12510. 1) El bit 31 tomar el valor del signo del nmero. (-6,125 1) 2) Pasar a binario la mantisa decimal. 6=1102 0,125=0,0012 6,125=110,0012 3) Normalizar. Correr la coma a derecha o izquierda hasta convertir el nmero binario en un nmero de la forma 1,.. El nmero de desplazamientos va a dar valor al exponente de forma que: Desplazamiento a la derecha Exponente negativo Desplazamiento a la izquierda Exponente positivo 6,12510=110,0012 1,10001 Exponente = 2 2 expresado en Exceso 127 es 129 100000012 4) Mantisa representada con bit implcito: 1,10001 10001 (el bit 1 de la parte entera no se representa) 5) El nmero final es 1 10000001 10001000000000000000000 2 (Se agregan a la derecha los 0 necesarios para completar los 23 bits de la mantisa) 6) Pasado a hexadecimal 1 100 0000 1 100 0100 0000 0000 0000 00002 = C0C4000016 B = -13414410 1) Representacin en binario: -13414410 = -1000001100000000002 17 2) Normalizacin: -1000001100000000002 = 2 X 2 10 3) Mantisa de 23+1(bit imp.)+1(s) bits en mdulo y signo: 1 1000001100000000000000002 4) Exponente de 8 bits en exceso a 127: Exceso almacenar (EA) = (E+127) en base 10 EA = 17+127 144 base 10 100100002 5) Resultado final 1 10010000 000001100000000000000002 C803000016

Cmo recupero un nmero en el formato?


Apunte de Sistemas de Numeracin Versin 1.2 Pgina 22 de 24

75.03 Organizacin del Computador

El Procedimiento para pasar de coma flotante a decimal es el siguiente: 1) Convertir a binario el nmero hexadecimal C0C4000016 = 1100 0000 1100 0100 0000 0000 0000 00002 2) Identificar los campos de la configuracin binaria 1 10000001 100010000000000000000002 Signo de la mantisa Exponente representado en exceso 127 Mantisa normalizada con bit implcito 3) Convertir cada uno de los campos a decimal 1 Mantisa negativa 100000012 = 12910 +2 es el exceso 100010000000000000000002 4) Corremos la coma binaria segn el exponente: 1,100010000000000000000002 debemos desplazar la coma a la derecha en 2 posiciones, quedando 110,0010000000000000000002 5) El numero final es la combinacin de todos los valores de los campos -6,12510 Ahora procedemos a realizar un ejemplo ms complejo. Dada la siguiente configuracin hexadecimal 4237800016 de un nmero almacenado en el estndar IEEE 754 de precisin simple, hallar el valor decimal de la cantidad representada. 1) Convertir a binario 010000100011011110000000000000002 2) Exponente: 100001002 en exceso 127 132= E+127 E = 510 3) Signo - mantisa: 0 - 101101111000000000000000 (aadiendo el bit implcito, en negrita) Signo: 0 Mantisa: (-1)0 x 1,011011110...02 = 1,4335910 4) Total: X = 1,43359 x 2510 = 45,87510 Formato Binario de Punto Flotante (IBM mainframe) Se trata del formato propietario que IBM desarroll para sus equipos mainframe de la serie 360/370/390/z. Sus caractersticas particulares son: Base: 16. Representa: Enteros con coma decimal positivos y negativos. Precisin: Simple (4 bytes), Doble (8 bytes) y Extendida (16 bytes).

Estructura S nnnnnnn dddddd Donde S = signo 1 para negativos y 0 para positivos n = dgitos de la caracterstica, en total son 7 bits y se usan para calcular el exponente de la siguiente manera: C = E + 4016 donde E corresponde al exponente

Apunte de Sistemas de Numeracin Versin 1.2

Pgina 23 de 24

75.03 Organizacin del Computador

d = corresponde a la mantisa normalizada 0,dddddd x 10e16

Cmo guardar un nmero en el formato? 1) Pasar el nmero a base 16. 2) Normalizar en base 16. 3) Calcular la caracterstica. 4) Armar el formato anteponiendo el bit de signo a la caracterstica. Ejemplo: - 321,54 10 Binario de punto flotante precisin simple. 1) 2) 3) 4) 5) 321,5410 = 141,8A316 0,1418A3 x 103 16 C = E + 4016 = 3 + 4016 = 4316 en base 2 sera 1000112 Agregamos el bit de signo: 11000112 que en base 16 es C316 Resultado final : C31418A316

Ancho de Paso Distancia entre un flotante y su siguiente nmero representable en el formato. Ejemplo: 0,FE04AC x 10-1A16 - 0,FE04AB x 10-1A16 0,000001 x 10-1A16 => 0,1-1F16 ANCHO DE PASO Absorcin: Se da en las operaciones de suma y resta entre flotantes. Ejemplo: realizar la suma entre los siguientes nmeros: A = 0,15A4 x 105 16 B = 0,54F x 10-2 16 Para poder operar entre flotantes debemos igualar los exponentes llevndolos al mayor de todos, en este caso 5. 0,15A400 x 105 + 0,00000005AF x 105 0,15A400 x 10516 Fenmeno de Absorcin. A absorve a B. Lo mnimo que se puede sumar es el ancho de paso del nmero de mayor exponente.

Cadenas de caracteres En una cadena de caracteres cada carcter ocupa 1 byte y se representa segn el cdigo de caracteres que se est utilizando (ASCII o EBCDIC). Ejemplos: La configuracin hexadecimal de 4 bytes 48 4E 4C 41 representa, segn la tabla de cdigos ASCII, a la cadena de caracteres HOLA. Mientras que si usamos el cdigo EBCDIC, HOLA se representa con la configuracin hexadecimal C8 D6 D3 C1.
Apunte de Sistemas de Numeracin Versin 1.2 Pgina 24 de 24

También podría gustarte