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