Documente Academic
Documente Profesional
Documente Cultură
Las computadoras almacenan en memoria dos tipos de informacin: datos e instrucciones. Para
ello utiliza el sistema binario por dos razones fundamentales: el dispositivo se encuentra en uno de
dos posibles estados y es ms fcil identificar cual es ste estado. Distinto sera el caso si fuera
necesario identificar uno de diez posibles, en el caso de trabajar en base diez.
Dentro del sistema de cmputo estos unos y ceros pueden representar a nmeros enteros con y
sin signo, nmeros reales con y sin signo, caracteres, instrucciones, imgenes, etc.
Vamos a ver como en el sistema de cmputo se representan nmeros enteros, en principio sin
signo y luego con signo.
0 000
1 001
2 010
.. .....
7 111
0 00000000
.. ..............
128 10000000
.. ..............
254 11111110
255 11111111
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
Vamos a ver distintos sistemas que cumplen con el objetivo: Binario con signo (BCS) Mdulo y
signo (MyS), Complemento a la base reducida (Complemento a uno = Ca1), Complemento a la
base (Complemento a dos = Ca2) y Exceso.
El bit n-1, el del extremo izquierdo, representa slo al signo y no forma parte del valor del nmero.
El resto de los bits, 0 a n-2, representan el valor (mdulo) del nmero en BSS.
Un 0 en el bit de signo indica que el nmero es positivo. Un 1 en el bit de signo indica que el
nmero es negativo.
En el primer ejemplo vemos que +32 empieza con 0 indicando que es positivo y en el segundo
ejemplo -32 empieza con 1 indicando que es negativo. En ambos ejemplos el resto de los bits son
iguales pues representan al nmero 32 (mdulo).
+710=00000111 - 710=10000111
+4110=00101001 -4110=1010100
-3 111 = -(2n-1 1)
-2 110
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
-1 101
-0 100
+0 000
+1 001
+2 010
+3 011 = +(2n-1 1)
negativos ...
10000000 -0
Nmeros 00000000 +0
positivos ...
Si bien este mecanismo es sencillo para pasar de un nmero positivo a negativo al revs, basta
con cambiar el dgito de signo como vimos en los ejemplos anteriores, este sistema presenta
problemas a la hora de realizar lgebra. El primer bit no puede ser sumado directamente en una
operacin aritmtica, debe ser tratado como un smbolo pues representa slo al signo y no
forma parte del valor del nmero. Otro problema es que este sistema tiene dos ceros.
Tcnica de Complementos
Complemento a N de A = N A
A diferencia del sistema anterior el bit ms significativo (bit del extremo izquierdo) forma parte del
nmero, sigue dando informacin del signo del nmero, pero no es slo el signo como en BCS.
Si el nmero es positivo los n bits tienen la representacin binaria del nmero, es decir en este
sistema los nmeros positivos coinciden con la representacin en BCS y BSS.
Como consecuencia de lo dicho, los positivos empiezan con 0 y los negativos con 1.
-3210= 11011111
Otros ejemplos:
-3 100 = -(2n-1 1)
-2 101
-1 110
-0 111
+0 000
+1 001
+2 010
+3 011 = +(2n-1 1)
negativos ...
11111111 -0
Nmeros 00000000 +0
positivos ...
Veamos ahora el siguiente problema: dada una cadena de bits cmo determinamos a qu
nmero decimal corresponde?
Si el nmero es positivo
01100000 = 1 x 26 + 1 x 25 = 64+32= 96
Hacer el Ca1 del nmero negativo, nos va a dar un nmero positivo cuyo valor podemos
calcular como en el caso anterior, pero debemos recordar que estbamos calculando el
valor del negativo, es decir hay que cambiar de signo al valor calculado
Como es negativo (empieza con 1) aplicamos la regla de complemento a la base disminuida que es
invertir todos los dgitos: 00011111. Como el nmero ahora es positivo podemos darle peso a cada
uno de sus dgitos
Otro mtodo consiste en darle peso a todos los dgitos, inclusive al bit que indica el signo.
Dijimos que este bit formaba parte del nmero por lo tanto debe tener un peso, nuestro
problema es saber cuanto vale dicho peso. Sin demostracin diremos que el peso es uno
menos al que le corresponde a esa posicin y luego hacindolo negativo, es decir (2n-1
1). El resto de los dgitos tienen los pesos conocidos hasta ahora.
Ca1 = bn 1 No
Lo que tenemos que hacer es despejar No pues todo lo dems es conocido. Este mtodo puede
prestar a confusin porque el nmero en Ca1, debe ser tratado como BSS.
No = - 31
Si bien con este sistema (Ca1) solucionamos el problema del lgebra pues el bit ms significativo
forma parte del nmero (tiene peso) y por lo tanto puede intervenir en las operaciones
aritmticas. Nos falta solucionar el problema de los dos ceros.
Al igual que en Ca2 el bit ms significativo (bit del extremo izquierdo) forma parte del nmero y
sigue dando informacin del signo del nmero.
Si el nmero es positivo los n bits tienen la representacin binaria del nmero, es decir en este
sistema los nmeros positivos coinciden con la representacin en Ca1, BCS y BSS.
Notemos que en BCS, Ca1 y Ca2, los nmeros positivos se representan de la misma manera, lo que
cambia para cada sistema es la representacin de los negativos.
Como consecuencia de lo dicho, los positivos empiezan con 0 y los negativos con 1.
-3210= 11100000
Otros ejemplos:
-1 111
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
-2 110
-3 101
-4 100 = -(2n-1)
+0 000
+1 001
+2 010
+3 011 = +(2n-1 1)
Nmeros 11111111 -1
negativos ...
Nmeros 00000000 +0
positivos ...
Este sistema tiene un solo cero por lo tanto est solucionado el problema del lgebra. Ms
adelante veremos como hace las cuentas el sistema de cmputo.
Como hicimos en Ca1, veamos ahora el siguiente problema: dada una cadena de bits en Ca2
cmo determinamos a qu nmero decimal corresponde?
Si el nmero es positivo
01100000 = 1 x 26 + 1 x 25 = 64+32= 96
Hacer el Ca2 del nmero negativo, nos va a dar un nmero positivo cuyo valor podemos
calcular como en el caso anterior, pero debemos recordar que estbamos calculando el
valor del negativo, es decir hay que cambiar de signo al valor calculado
Otro mtodo consiste en darle peso a todos los dgitos, inclusive al bit que indica el signo.
Dijimos que este bit formaba parte del nmero por lo tanto debe tener un peso, nuestro
problema es saber cuanto vale dicho peso. Sin demostracin diremos que el peso es el que
le corresponde a esa posicin pero con signo negativo, es decir (2n-1 ). El resto de los
dgitos tienen los pesos conocidos hasta ahora, es decir positivos.
Ca2 = bn No
Lo que tenemos que hacer es despejar No pues todo lo dems es conocido. Este mtodo puede
prestar a confusin porque el nmero en Ca2 (en esta cuenta), debe ser tratado como BSS.
No = - 32
Hasta ahora vimos tres sistemas distintos para representar nmeros positivos y negativos: BCS,
Ca1 y Ca2. En los tres sistemas los nmeros positivos se representan de la misma manera
coincidiendo con el sistema BSS y lo que cambia para cada sistema es la representacin de los
negativos. Seguidamente vamos a ver un sistema llamado Exceso donde cambian las
representaciones tanto de los nmeros positivos como de los negativos.
Representacin en Exceso
Para representar un nmero en exceso primero debemos representar el nmero en Ca2 y luego
sumarle una cantidad fija que se llama exceso. Si el nmero es de 8 bits el exceso es 10000000, si
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
el nmero es de 4 bits el exceso es 1000 o sea para un nmero dado de bits el exceso se forma con
un 1 en el bit de ms a la izquierda seguido de todos ceros. Ms adelante vamos a ver otros
excesos.
00100000
+
10000000
11100000
+
10000000
Para la representacin en exceso tomamos la misma cantidad de bits que el nmero original, o sea
8 bits y descartamos el carry generado. A partir de este ejemplo notamos que en exceso los
nmeros negativos empiezan con 0.
Como hicimos con los sistemas anteriores, veamos ahora el siguiente problema: dada una cadena
de bits en exceso cmo determinamos a qu nmero decimal corresponde? As como para
representar un nmero en exceso partimos de la representacin en Ca2 y le sumamos una
cantidad fija, inversamente dada una cadena de bits en exceso debemos restarle el exceso y as
obtener la cadena de bits en Ca2. Cuando tratamos Ca2 se explicaron distintas maneras de
obtener el nmero en base 10.
Ejemplo: dada la siguiente cadena de bits en exceso 11100000, calcular el valor decimal.
11100000
-
10000000
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
Son bits que el procesador establece en forma automtica acorde al resultado de cada operacin
realizada. Despus de la ejecucin de cada instruccin estos bits cambian, debemos aclarar que no
todas las instrucciones afectan a todos los bits de condicin. En particular nos ocuparemos de
aquellos que cambian luego de realizar una suma una resta a los que llamaremos banderas
aritmticas. Los valores que tomen estos bits nos permitirn tomar decisiones como:
Ms adelante estudiaremos las instrucciones que nos permitirn conocer el valor de estos bits de
condicin. Antes de seguir adelante vamos a definirlos y ver ante que condicin cambian sus
valores, mencionando primeramente que el sistema de cmputo slo hace cuentas en Ca2 BSS.
Z (cero): este bit vale 1 si el resultado de la suma resta son todos bits 0.
C (carry): en la suma este bit vale 1 si hay acarreo en el bit ms significativo y en la resta vale 1 si
hay borrow hacia el bit ms significativo. Cuando la suma resta involucra a nmeros sin signo
(BSS), C=1 indica una condicin de fuera de rango (desborde), quiere decir que la cantidad de bits
disponibles para expresar el resultado no son suficientes.
N (negativo): igual al bit ms significativo del resultado. Si el resultado empieza con 1, entonces
N=1 y el nmero es negativo (Ca2).
V (overflow): cuando la suma resta involucra a nmeros con signo (Ca2), V=1 indica una
condicin de fuera de rango (desborde), quiere decir que la cantidad de bits disponibles para
expresar el resultado no son suficientes.
Suma en Ca2
Resta en Ca2
Para restar dos nmeros en Ca2, se restan los n bits directamente. Tambin se puede hacer Ca2 el
sustraendo y transformar la resta en suma.
1101 0101 -3 13
+ + +
0011 +3 3
1 0000 0 carry 0
1001 0011 -7 9
+ + +
1100 -4 12
1 0101 V +5 C 5
1 0101 1001 +5 5
- - -
0111 +7 7
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
1110 -2 B 14
1001 0010 -7 9
- - -
0100 +4 4
0101 V +5 5
Vamos a estudiar ahora la representacin de nmeros reales dentro del sistema de cmputo.
Vimos como representar nmeros con coma en punto fijo, para comprender la necesidad de
introducir el concepto de representacin en punto flotante debemos pensar en el orden de
magnitud de los nmeros con los cuales vamos a trabajar. Muchas disciplinas en las ciencias
requieren el manejo de rdenes tan distintos como 10-27 10+27. Si bien podemos representar
estos nmeros en los sistemas de punto fijo, deberamos tener en cuenta la cantidad de bits
necesarios para dicho rango y con que resolucin deseamos representar dichos nmeros. Es
conocida la forma de expresar constantes fsicas como :
La mantisa est formada por tres dgitos decimales y el exponente por dos dgitos. Si bien ambos
nmeros parecen tener la coma en la misma posicin, el exponente nos est diciendo que esto no
es cierto. Si siempre trabajamos en base 10 no sera necesaria almacenarla y se necesitaran
menos dgitos para almacenar mantisa y exponente que todo el nmero completo. En nuestro
caso ocupara menos espacio en memoria almacenar los nmeros por separado 9,33 y -31 que el
nmero completo 9,33 x 10-31.
Utilizando estas ideas para nmeros binarios, podemos representar un nmero en coma (punto)
flotante como:
M x 2E
Donde M y E son dos nmeros binarios representados en alguno de los sistemas en punto fijo
vistos (BCS, CA1, CA2). El sistema de cmputo trabaja en base 2 y no es necesaria almacenarla,
es la misma para todos los nmeros, por lo tanto el nmero se almacenar como una palabra
binaria de dos campos: mantisa y exponente.
BSS BSS
entera entero
Con 4 bits en BSS el nmero entero ms grande es 1111 que es el nmero 15 en base 10. El mismo
razonamiento seguimos con el exponente.
N1 N3 N4 N2
R1 R2
Resolucin en el extremo superior ser la distancia entre N2 y N4. Donde N2 es el nmero mximo
y N4 es el inmediato anterior. As:
Resolucin en el extremo inferior ser la distancia entre N3 y N1. Donde N1 es el nmero ms chico
y N3 el inmediato siguiente.
N1 = 0 Calculado anteriormente
N3 = 1 x 20 = 1
R1 = (1 0)x20 = 1
Ejemplo 2. Consideremos el siguiente formato en punto fijo: 8 bits, enteros, BSS. Calcular rango y
resolucin.
N1 N3 N4 N2
R1 R2
Resolucin en el extremo superior
N4 = 11111110 = 254
R2 = N2 N4 = 255 254 = 1
N3 = 00000001 = 1
R1 = N 3 N 1 = 1 0 = 1
Vamos a ver un ejemplo donde el sistema representa a nmeros con signo. La mantisa es la que
tiene que estar representada por alguno de los sistemas ya vistos (BCS, Ca1, Ca2, Exceso) para que
el nmero en punto flotante tenga signo. El exponente tambin puede estar en BCS, Ca1, Ca2
Exceso, pero esto no hace que el nmero sea positivo negativo.
Ca2 Ca2
entera entero
N1 N3 0 N5 N4 N2
R1 R2
El nmero ms grande se obtiene con la mantisa mayor positiva y con el exponente mayor
tambin positivo. Con 4 bits en Ca2 el entero ms grande positivo es 0111 = 7.
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
El nmero ms chico se obtiene con la mantisa menor (negativa), con 4 bits en Ca2 el entero ms
chico es 1000 = - 8 y con el exponente mayor 0111 = 7.
R2 = N2 N4 = (7 6) x 27 = 1 x 27
Resolucin en el origen
El nmero positivo ms cercano a 0 es N5, que se obtiene con la mantisa positiva ms chica (1) y
con el exponente menor (- 8).
R1 = N5 0 = (1 x 2-8 0 ) = 1 x 2-8
BCS Ca2
fraccionaria entero
N1 N3 N 6 0 N5 N4 N2
R1 R2
La resolucin ms grande, entendiendo por aquella donde los nmeros estn ms separados, es
R2 = N 2 N 4
N4 = 0 0,111110 x 201111111 Como antes cambiamos el bit menos significativo de la mantisa para
obtener el ms cercano a N2, entonces:
La resolucin ms pequea, entendiendo por aquella donde los nmeros estn ms cercanos, es
R1 = N 5 0
N5 = 0 0,000001 x 210000000 = 2-23 x 2-128 Como antes cambiamos el bit menos significativo de la
mantisa para obtener el ms cercano a N2, entonces:
Normalizacin
Existen distintos valores de mantisa y exponente para representar un mismo nmero. Esto
tambin sucede en base 2. Con el objetivo de tener un nico par de valores de mantisa y
exponente para un nmero, se introduce la normalizacin. Con el objetivo anterior, las mantisas
fraccionarias se definen de la forma:
0,1..
es decir todas las mantisas empiezan con 0,1 y luego continan con los dgitos binarios que
correspondan (0 1). Esta normalizacin es para mantisas expresadas en BCS BSS, prestemos
atencin que la misma empieza siempre con 0, slo es posible en nmeros donde el signo est
aparte del mdulo del nmero (BCS) donde no hay signo (BSS).
Si la mantisa estuviera escrita en Ca2 por ejemplo, la normalizacin sera otra y no sta.
BCS 8 bits
Normalizada
Mximo positivo
0 0,111..111 x 211111111=+(1-2-23).2+127
0 0,100..000 x 200000000=+(0,5).2-128
Este nmero es simtrico al anterior con la diferencia que empieza con 1 ( - ) indicando que es
negativo.
Mnimo negativo
Este nmero es simtrico respecto del mximo positivo pero empieza con 1 ( - ) indicando que es
negativo.
Igual que en otros sistemas, dada una cantidad fija de bits hay un nmero mximo que es posible
representar, pero debido a la normalizacin aqu hay una zona alrededor del cero de la recta
numrica que no es posible representar, pues la mantisa nunca se hace cero.
En nuestro ejemplo entre -0,5.2-128 y +0,5.2-128 no es posible representar ningn nmero, includo
el 0.
Bit Implcito
Como todas las mantisas comienzan con 0, vimos que no era necesario almacenar el 0, a la hora
de guardar en memoria la mantisa y el exponente. Al normalizar el nmero, todas las mantisas
empiezan con 0,1. Como este 1 siempre est presente podramos pensar de la siguiente manera: si
no lo almacenamos podemos adicionar un bit ms a la mantisa. El bit no almacenado se conoce
como bit implcito.
Dibujemos ahora la recta numrica para el sistema anterior pero con bit implcito
Por el uso de bit implcito hemos ganado un bit ms en la mantisa y por lo tanto mayor precisin al
momento de representar un determinado nmero.
1) N = 1 1101,100..0=1 1101,100..0x20
2) N = 1 0,110110..0 x 24
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
Finalmente
Error Absoluto
Dado un sistema numrico no siempre es posible representar en forma exacta un nmero dado.
Pensemos un ejemplo sencillo en punto fijo: si los nmeros son enteros no podremos representar
1,2 en forma exacta, ser aproximado por 1. Otro ejemplo 1,7 ser aproximado por 2. En ambos
casos cometimos error en la representacin del nmero porque por la definicin del sistema no
permite nmeros con coma. El error cometido en ambos casos es:
En punto flotante tambin sucede lo mismo, por ms que la mantisa tenga coma no significa que
puedo representar en forma exacta cualquier nmero. Definimos el error absoluto como la
diferencia entre el valor representado (el que se pudo) y el valor a representar.
Organizacin de Computadoras Curso 2016
Prof. Jorge Runco
IEEE 754
El estndar IEEE 754 fue definido por el Instituto de Ingenieros Elctricos y Electrnicos (Institute
of Electrical and Electronics Engineers, IEEE) y establece dos formatos bsicos para representar a
los nmeros reales dentro del sistema de cmputo. Estos dos formatos son conocidos como
simple precisin y doble precisin.
En este formato de simple precisin para escribir un nmero real se usan 32 bits (4 bytes): 1 bit
para el signo (S) del nmero, 23 bits para la mantisa (M) y 8 bits para el exponente (E). La mantisa
est expresada en BCS (MyS), fraccionaria con la coma despus del primer bit que siempre es 1
pues est normalizada y el exponente en exceso.
La normalizacin de la mantisa es distinta a la vista anteriormente 0,1; ahora es 1,. Y el exceso
sumado al exponente es 01111111 tambin distinto al visto anteriormente 10000000 para 8 bits,
tambin llamado exceso 2n-1 1. Finalmente el formato ser:
1 8 23
En este formato de doble precisin para escribir un nmero real se usan 64 bits (8 bytes): al igual
que en simple precisin la mantisa est representada en BCS, normalizada pero en 52 bits y el
exponente en exceso en 11 bits (exceso = 01111111111). Finalmente el formato ser:
1 11 52
Casos especiales
En este sistema, como en cualquier otro normalizado, la mantisa nunca es cero. Por lo tanto el
cero no puede ser representado por este formato normalizado, requiere una representacin
especial. A continuacin veremos otros casos especiales adems del cero.
En el formato IEEE 754 hay dos exponentes que son usados para representar casos especiales:
todos los dgitos del exponente son unos ceros. Quiere decir que si al analizar un nmero escrito
en este formato encontramos que el exponente son todos unos todos ceros, el nmero
corresponde a un caso especial tanto para simple como para doble precisin.
En simple precisin un exponente con todos sus bits en cero (00000000) visto como nmero sin
signo es el cero. Recordemos que el exponente en realidad est representado en exceso, por lo
tanto visto como un nmero con signo en exceso debemos restar el exceso para saber a qu
nmero representa, entonces 00000000 01111111= 10000001. Recordemos que al restar el
exceso el nmero queda expresado en Ca2, por lo tanto 10000001 = - 127.
En simple precisin un exponente con todos sus bits en uno (11111111) visto como nmero sin
signo es el 255. Visto como un nmero con signo en exceso debemos restar el exceso para saber a
qu nmero representa, entonces 11111111 01111111= 10000000. Recordemos que al restar el
exceso el nmero queda expresado en Ca2, por lo tanto 10000000 = - 128.
Resumiendo podemos decir que los exponentes usados para casos especiales son 0 y 255, vistos
como nmeros sin signo; podemos decir que estos exponentes son -128 y 127, vistos como
nmeros con signo en exceso. En cualquiera de los dos casos, BSS Exceso, son los exponentes
00000000 y 11111111.