You are on page 1of 15

7503_Organizacin del Computador

Sistemas Numricos Primera Edicin

Apunte
de
Sistemas Numricos

2do. Cuatrimestre 2003

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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, una de
representar JORGE y una 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 (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
Por ejemplo (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)
El punto (o la coma) 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

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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
0
1
2
3
4
5
6
7
8
9

1
1
2
3
4
5
6
7
8
9
10

2
2
3
4
5
6
7
8
9
10
11

3
3
4
5
6
7
8
9
10
11
12

4
4
5
6
7
8
9
10
11
12
13

5
5
6
7
8
9
10
11
12
13
14

6
6
7
8
9
10
11
12
13
14
15

7
7
8
9
10
11
12
13
14
15
16

8
8
9
10
11
12
13
14
15
16
17

789
+201
990

9
9
10
11
12
13
14
15
16
17
18

*
0
1
2
3
4
5
6
7
8
9

0
0
0
0
0
0
0
0
0
0
0

1
0
1
2
3
4
5
6
7
8
9

2
0
2
4
6
8
10
12
14
16
18

789
x 2
1578

3
0
3
6
9
12
15
18
21
24
27

4
0
4
8
12
16
20
24
28
32
36

5
0
5
10
15
20
25
30
35
40
45

6
0
6
12
18
24
30
36
42
48
54

7
0
7
14
21
28
35
42
49
56
63

8
0
8
16
24
32
40
48
56
64
72

789
-201
588

Sistema de Base 4
+
0
1
2
3

0
0
1
2
3

1
1
2
3
10

2
2
3
10
11

1234
+ 2014
3304

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
x 2014
1234 + 312004 = 313234

9
0
9
18
27
36
45
54
63
72
81

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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 y tomar los restos de abajo hacia arriba.
Ejemplos:
3410 ( )2

34 |2
0 17 |2
1 8 |2
0 4 |2
0 2 |2

0 1 |2
1 0

3410 ( )16

34 |16
2 2 |16
2 0

(100010)2

(22)16

Nb ( )p
Para resolver este cambio de base se utiliza la combinacin de los dos mtodos
anteriormente explicados.
En primer lugar se realiza el siguiente cambio: Nb ( )10 y finalmente
( )10 ( )p.
Ejemplo:
C.

324 ( )6
324 = (3x4 + 2)10 = 1410
1410 ( )6 14 |6
2 2 |6
2 0
(22)6
324 = 226
Partes Fraccionarias

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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
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

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


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

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

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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
23 = 8
(010 | 110)2 = 268
1102 = 68
0102 = 28

tomo de 3 dgitos

B. b1/x = p
Cada dgito en la base b se expandir en x dgitos en la base p.
Ejemplo:
AE7516 ( )2
dgitos binarios
516 = 01012
716 = 01112
E16 = 11102
A16 = 10102

161/4 = 2

se expande en 4

(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.

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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.
Formatos
Formato Binario de punto fijo sin signo
Base: 2
Representa: Nmeros enteros positivos.
Mximo: (2n 1)10
Cmo almacenar un nmero en el formato?
1) Pasar el nmero a base 2.
2) Completar con ceros a izquierda la capacidad (cantidad de bits) del formato.
Ejemplo:
Capacidad: 8 bits
Nro.: 2710
1)
2)

2710 = 110112
000011012

Expansin y truncamiento
Expandir formato: se completa con ceros a izquierda. Ejemplo:
000110112 8 bits

000000000001100112 16 bits
Truncar formato: Si es posible se sacan ceros a izquierda.
000011012 8 bits

11012 4 bits
000111012 8 bits

No es posible truncarlo a 4 bits.


Interpretacin
Se realizan en orden inverso los pasos para almacenar.

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

Complemento
El complemento de un nmero dado en una base es aquel que sumado al nmero
original da la base (base a la n).
AB=d
A B + b n = d + bn
B complemento
A + Bcomp = d + bn
Ejemplo:
A = 10376
B = 234

tomo el de mayor cantidad de dgitos => n = 5

A + Bcomp = d + bn
Bcomp = 100000 234 = 99766
10376 + 99766 = d + 100000
110142 = d + 100000
10142 = d
A = 1012
B = 10002
=> n = 4
B A= d
B A + bn = d + b n
B + Acomp = d + bn
1000 + 1011 = d + bn
10011 = d + 1000
11 = d

Acomp = Not (A) + 1

Formato Binario de Punto Fijo con Signo

Base: 2
Representa: Enteros positivos y negativos.
Mximo: 2n-1 1
Mnimo: -2n-1

El primer bit se reserva para el signo: 0 (+) y 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 complementar.
Ejemplo:
-12510
BPF c/s 8 bits
1) -12510 = -11111012
2) 011111012
3) 10000010 Not
bits

10000011 BPF c/s 8

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

Al complementar obtengo el bit del signo (1).


Expansin y Truncamiento
Expansin: Se completa con el bit de signo a la izquierda.
Ejemplo:
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. Ejemplo:
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.
Interpretacin
1) Si el bit de signo (primero de izquierda) es 1 => nro.
Negativo => se complementa.
2) Se quitan 0 a izquierda.
3) Se pasa de base 2 a base 10.
Formato Empaquetado

Base: 16.
Representa: Enteros + y -.
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) cada grupo es denominado NIBBLE.
Cmo guardar un nmero en el formato?
1) Pasar el nmero a base 10.
2) Colocar cada dgito decimal en un nibble (el ltimo nibble se reserva para 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 4 bytes

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

0 0 0 0 1 2 7 D
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 izquierdo con F salvo el ltimo que se
completa con el signo siguiendo las mismas reglas que para empaquetados.
Ejemplo:
-127 Zoneado de 3 Bytes.
F 1 F 2 B 7

Formato Binario de punto Flotante


Base: 16.
Representa: Enteros con coma decimal positivos y negativos.
Precisin: Simple (4 bytes), Doble (8 bytes) y Extendida (16 bytes).
Estructura
d d d d d d

8 bits
S = signo 1 S n n n n n n n
7 bits de

Mantisa
0,dddddd x 10e16
(-) 0(+)
Caracterstica

Caracterstica:
C = E + 40 16
E = exponente

10

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

Cmo guardar un nmero en el formato?


1)
2)
3)
4)

Pasar el nmero a base 16.


Normalizar en base 16.
Calcular la caracterstica.
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)

- 321,5410 = - 141,8A316
- 0,1418A3 x 103 16
C = E + 40 = 3 + 40 = 4316 en base 2 sera 1000112
Agregamos el bit de signo: 11000112 que en base 16 es C316
C31418A316

Propiedades de los nmeros flotantes


Ancho de Paso: Marca cul es la distancia entre un flotante y su siguiente nmero
representable en el formato. No es el mismo para todos los nmeros flotantes. A mayor
exponente mayor ancho de paso.
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:
A = 0,15A4 x 105 16
B = 0,54F x 10-2 16
Para poder operar entre flotantes debemos igualar los exponente llevndolos al
mayor de todos, en este caso 5.
+

0,15A4 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.
El formato anteriormente explicado no es el nico que existe
para representar nmeros flotantes. Esto generaba una situacin
problemtica por lo cual surgi el estandar 754.

11

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin
El estndar 754 de la IEEE para nmeros de punto flotante

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.
El estndar define tres formatos: precisin simple (32 bits), precisin doble (64
bits) y precisin extendida (128 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

Signo

23

Exponente

Fraccin

Doble precisin
Bits

Signo

11

Exponente

52

Fraccin

Figura 2: Esquema de los nmeros de punto flotante de la IEEE

12

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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 1
s, la fraccin es numricamente apenas menor que 2. Todos los nmeros normalizados
tendrn una fraccin f, en el rango 1 f 2.
Item
Bits en el signo
Bits en el exponente
Bits en la fraccin
Total de bits
Sistema del exponente
Rango del exponente
Mnimo, normalizado
Mximo, normalizado
Rango decimal
Mnimo, denormalizado

Precisin simple
1
8
23
32
Exceso 127
-126 a 127
2-126
aprox 2+128
aprox 10-38 a 1038
aprox. 10-45

Precisin doble
1
11
52
64
Exceso 1023
-1022 a 1023
2-1022
aprox. 2+1024
aprox 10 -308 a 10 308
aprox 10.324

Tabla 3: Caractersticas de la representacin de punto flotante del estndar de la


IEEE
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
Agregando el 1 implcito:
1.0000000000000000000000
1,000000000000000002 x 2-1 = 0,12 x 20 = 0,5
La verificacin de los otros dos nmeros se deja para el lector.
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.

13

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

Normalizado

0 Exp Max

Cualquier patrn de bits

Desnormalizado

Cualquier patrn de bits 0

Cero

Infinito

1111

NAN

1111

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-127 , 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 la posiciones restantes. En este caso el exponente es -127 y la
fraccin representa 2-23, siendo entonces el valor del nmero 2-232-127 = 2-150 .
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 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
1

Cuando se dice que el exponente es cero se quiere decir que todos los bits que representan al exponente son cero.
Como el exponente se representa en notacin exceso m, su verdadero valor depender de la precisin: -127 para los
nmeros de precisin simple y -1023 para los de doble.

14

7503_Organizacin del Computador


Sistemas Numricos Primera Edicin

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.
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:
1.

La configuracin hexadecimal de 4 bytes 48 4E 4C 41 representa, segn la


tabla de cdigos ASCII, a la cadena de caracteres HOLA.

Si se utiliza el cdigo EBCDIC, HOLA se representa con la configuracin


hexadecimal C8 D6 D3 C1.

15

You might also like