Representación de Números Enteros

Anuncio
OC1 DC UBA FCEyN
Representacion de Numeros enteros
Demian Wassermann
2Q08
Demian Wassermann
Representacion de Numeros enteros
Brevisima entrada en calor
Sistemas de numeracion posicionales (p, k, l)
p: La base o cantidad de simbolos permitidos
p: Cantidad de digitos de la parte entera
l: Cantidad de digitos de la parte fraccionaria
Ejemplo:
523, 14 = 5 · 103 + 2 · 101 + 3 · 100 + 1
1
1
+4
10
100
Sea d un digito
dk −1 . . . d0 , d−1 . . . d−l
dk −1 p
k −1
+ . . . + d0 p0 + d−1 p−1 + . . . + d−1 p−l
kX
−1
di pi +
i=0
Demian Wassermann
l
X
d−i p−i
i=1
Representacion de Numeros enteros
Sistemas de numeracion enteros
Los sistemas de numeracion enteros son sistemas
(p, k , 0) = (p, k), en particular el sistema binario es (2, k).
Problemas cuando k es finito:
“Intuitivo”
Rango de representacion simetrico
Representacion unica de cada numero
Operatoria sencilla
Si tomamos los numeros mayores o iguales a 0 esta todo bien
pero si queremos representar negativos empieza a haber
problemas
Demian Wassermann
Representacion de Numeros enteros
Sistemas de numeracion enteros
con signo
El primer bit se toma como el signo, entonces el numero en
(2, k ), ∀i : di ∈ {0, 1} es:
dk −1
−1
·
k−2
X
i=0
“Intuitivo”
Rango de representacion simetrico
Representacion unica de cada numero
0 = 00002s = −10 · (0002 ) = −11 · (0002 ) = 10002s
Operatoria sencilla Tenemos que implementar un
algoritmo especial para la resta.
Demian Wassermann
Representacion de Numeros enteros
Sistemas de numeracion enteros
Complemento a 1
El negativo se toma invirtiendo los digitos, entonces el numero
en (2, k), ∀i : di ∈ {0, 1} es:
si dk −1 = 0 →
kX
−2
di pi
i=0
si dk −1 = 1 → −
kX
−2
(1 − di )pi
i=0
“Intuitivo”
Rango de representacion simetrico
Representacion unica de cada numero
0 = 00002c1 = (0002 ) = −(0002 ) = 11112c1
Operatoria sencilla: a2c1 + b2c1 = (a2 + b2 + carry)2c1
Demian Wassermann
Representacion de Numeros enteros
Sistemas de numeracion enteros
Complemento a 2
El negativo se toma invirtiendo los digitos, entonces el numero
en (2, k), ∀i : di ∈ {0, 1} es:
si dk −1 = 0 →
kX
−2
di pi
i=0
si dk −1 = 1 → −
kX
−2
(1 − di )pi − 1
i=0
“Intuitivo”
Rango de representacion simetrico mas negativos que
positivos
Representacion unica de cada numero
Operatoria sencilla: a2c2 + b2c2 = (a2 + b2 )2c2
Demian Wassermann
Representacion de Numeros enteros
Sistemask−1
de numeracion enteros
Por exceso a p
El negativo se toma invirtiendo los digitos, entonces el numero
en (2, k), ∀i : di ∈ {0, 1} es:
si dk−1 = 0 → p
k −1
+
kX
−2
di pi
i=0
si dk −1 = 1 → pk −1 −
kX
−2
(1 − di )pi
i=0
“Intuitivo”
Rango de representacion simetrico mas positivos que
negativos
Representacion unica de cada numero
Operatoria sencilla: Equivalente a complemento a 2 con el
bit de signo invertido
Demian Wassermann
Representacion de Numeros enteros
Sistemas de numeracion enteros
Los sistemas de numeracion enteros son sistemas
(p, k , 0) = (p, k), en particular el sistema binario es (2, k).
Problemas cuando k es finito:
“Intuitivo”
Rango de representacion simetrico
Representacion unica de cada numero
Operatoria sencilla
Si tomamos los numeros mayores o iguales a 0 esta todo bien
pero si queremos representar negativos empieza a haber
problemas
¿Y si me paso de rango?
Si sumo dos positivos(negativos) y el resultado me da
negativo(positivo), es decir el bit de signo da invertido, esto se
considera
OVERFLOW
Demian Wassermann
Representacion de Numeros enteros
Descargar