Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
REPRESENTACIÓN DE UN NÚMERO EN UN ORDENADOR REPRESENTACIÓN DE UN NÚMERO EN UN ORDENADOR Representar (o codificar) un número significa expresarlo en forma binaria. La representación de números en un ordenador es necesaria para que éste pueda almacenarlos y manipularlos. Sin embargo, el problema es que un número puede ser infinito (tan grande como se desee) o puede utilizar un número grande de dígitos para representarlo; pero, la representación de un número en un ordenador debe ocupar un número máximo de bits predeterminado. Por lo tanto, la clave es predeterminar el número de bits y cómo se interpretan para que representen la cifra de la manera más eficiente posible. CONVERSION DE UN NUMERO ENTERO EN BASE 10 A BASE 2 El número se divide consecutivamente por 2, luego se forma el número tomando el último cociente y luego los restos en orden invertido. Ejemplo: Representar 4210 en base 2 4210 = 1010102 REPRESENTACIÓN DE UN NÚMERO NATURAL Un número natural es un número entero positivo o cero. La elección de la cantidad de bits a utilizar depende del intervalo de números que se utilizarán. Para codificar los números naturales entre 0 y 255, todo lo que se necesita son 8 bits (un byte) como 28 = 256. Por lo general, la codificación de n-bit se puede utilizar para representar números naturales entre 0 y 2n-1. Para representar un número natural, se define el número de bits que se utilizarán para su codificación, luego se ordena los bits en celdas binarias (cada bit ubicado de acuerdo a su peso binario en el orden de derecha a izquierda) y luego "llenar" los bits que no se utilizan con ceros. Ejemplo: Representar el numero 3910 en una palabra de 8 bits. En binario 3910 1001112 0 0 1 0 0 1 1 1 REPRESENTACIÓN DE UN NÚMERO ENTERO FORMATO SIGNO Y MAGNITUD La posición de mayor valor se utiliza para el signo; el valor 0 representa el signo positivo y el valor 1 representa el signo negativo. Los bits restantes se utiliza para la magnitud empezando por la derecha. Se pueden representar los enteros en el intervalo [-2n-1-1,2n-1-1]. El cero tiene doble representación +0 y -0. Ejemplo: Representar el numero -3910 en una palabra de 8 bits. En binario 3910 1001112 1 0 1 0 0 1 1 1 REPRESENTACIÓN DE UN NÚMERO ENTERO FORMATO COMPLEMENTO A 2 La traducción de un número entero en base 10 a su representación con n bits en complemento a 2 se realiza mediante las siguientes reglas: Si el número es mayor o igual que cero, su representación corresponde directamente a su traducción a base 2 con n bits. Si el número es negativo, su representación se obtiene mediante tres operaciones: • Obtener la representación del valor absoluto del número en base 2 tomando los n-1 dígitos. • Reemplazar cada cero por un uno y cada uno por un cero. A esta operación también se le conoce como “negar” el número. • Sumar el valor 1 al número obtenido. El rango de números enteros representados por una palabra de n bits es [-(2n-1), 2n-1 - 1]. Ejemplo: Representar el numero -3910 en una palabra de 8 bits en el formato Complemento a 2. 1. En binario 3910 01001112 2. Negando el numero, 1011000 3. Sumando un 1, 1011001 1 1 0 1 1 0 0 1 Ejemplo: Se tiene una palabra de 8 bits que almacena los números bajo el formato de complemento a 2, dar el numero en base binaria y base decimal. 1. Determinando si es positivo o negativo: Negativo. 2. Restar el numero 1, -1101011 3. Negar el numero, -0010100 4. En base 10, -20 1 1 1 0 1 1 0 0 CONVERSION DE UN NUMERO DECIMAL EN BASE 10 A BASE 2 El número binario correspondiente a la parte decimal será la unión de todas las partes enteras, tomadas de las multiplicaciones sucesivas realizadas durante el transcurso del proceso, en donde el primer dígito binario corresponde a la primera parte entera, el segundo dígito a la segunda parte entera, y así sucesivamente hasta llegar al último. Ejemplo: Representar en base 2 el numero 0,37510 Ejemplo: Representar el numero 42.37510 en base 2. 42.37510 = 101010.011 Ejemplo: Representar el numero 101010.0112 en base 10. 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 + 1x2-3 = 32 + 0 + 8 + 0 + 2 + 0 + 0 + 0.25 + 0.125 = 42.375 REPRESENTACIÓN DE UN NÚMERO REAL El estándar IEEE 754 define cómo codificar un número real. Este estándar utiliza una palabra de 32 bits, y define tres componentes: 1. El signo (s) se representa por un bit: el bit de mayor peso. 2. El exponente (e) se codifica utilizando 8 bits inmediatamente después del signo. 3. La mantisa (m) (los bits después del punto decimal) con los 23 bits restantes Así, la codificación sigue la forma: seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm http://www.zator.com/Cpp/E2_2_4a1.htm RESTRICCIONES PARA LOS EXPONENTES • El exponente 00000000 está prohibido. • El exponente 11111111 está prohibido. Sin embargo, a veces se utiliza para informar de errores. Esta configuración numérica se denomina NaN (Not a number), que significa No es un número. • Se le debe sumar 127 (01111111) al exponente para convertir al decimal en un número real dentro del sistema binario. Por lo tanto, los exponentes pueden variar de -254 a 255 NOTACIÓN CIENTÍFICA NORMALIZADA Un número real x distinto de cero, se representa en notación científica normalizada en la forma: Z = (0,d1d2d3 . . . . dn)β e en donde =±1 (signo) β -{0, 1}, es la base de numeración e, d1 > 0 (Normalización) Β, n y , dependen de la característica de la máquina y su formato de representación. Ejercicio: Sea una máquina con β = 2, n = 4 y -3 ≤ e ≤ 3. Completar la tabla con los número representables en base 10. EXPONENTES mantisa e = -3 e = -2 e = -1 e = 0 e = 1 e = 2 e = 3 0.10002 0.5 0.10012 0.10102 0.10112 0.11002 0.11012 0.11102 0.11112 Exactamente del mismo modo podemos utilizar la notación científica en el sistema binario. En este caso, tenemos que: donde m es un entero. El número q se denomina mantisa y el entero m exponente. En un ordenador binario tanto q como m estarán representados como números en base 2. Puesto que la mantisa q está normalizada, en la representación binaria empleada se cumplirá que: REPRESENTACIÓN DE NÚMEROS REALES FORMATO PUNTO FLOTANTE El estándar IEEE 754 ha sido definido por el Instituto de Ingenieros Eléctricos y Electrónicos (Institute of Electrical and Electronics Engineers, IEEE) y establece dos formatos básicos para representar a los números reales en la computadora digital: precisión simple y precisión doble. 1. Identificar si el número es positivo (0) o negativo (1), para definir el primer bit. 2. Representar el número en binario. 3. Normalizar el número. 4. Al exponente sumarle 127 y representarlo en binario. Debe tener 8 dígitos, si es necesario complete con ceros a la izquierda del número, los bits que ocupan son del 2 al 9. 5. Tome la parte decimal del numero normalizado en base 2, si es necesario complete con ceros a la derecha del número recuerde que debe tener 23 dígitos, del bit 10 al bit 32. Ejemplo: Codificar el número 525,5 • 525,5 es positivo, por lo que el primer bit será 0. • Su representación en el sistema binario (base 2) es: 1000001101.1 • Al normalizarlo, obtenemos: 1.0000011011*2^9 • Sumándole 127 al exponente, que es 9, da 136 o, en sistema binario (base 2): 10001000 • La mantisa está compuesta por la parte decimal de 525,5 en base 2 normal, que es 0000011011. • Como la mantisa debe tomar 23 bits, se deben agregar ceros para completarla: • 00000110110000000000000 La representación binaria de 525,5 bajo el estándar IEEE 754 es, por lo tanto: • 0 1000 1000 00000110110000000000000 Ejemplo: Codificar el número -0,625. El bit s es 1, como 0,625 es negativo. 0,625 se escribe en sistema binario (base 2) de la siguiente manera: 0.101 Queremos escribirlo en la forma 1.01x 2-1 Consecuentemente, el exponente vale 1111110 como 127 - 1 = 126 (o 1111110 en sistema binario) La mantisa es 01000000000000000000000 (sólo se representan los dígitos después del punto decimal, ya que el número entero es siempre equivalente a 1) La representación binaria de 0,625 bajo el estándar IEEE 754 es, por lo tanto: 1 0111 1110 01000000000000000000000 LEER UN NUMERO REPRESENTADO EN EL FORMATO IEEE 754 Así, la fórmula para expresar números reales es: (-1)^S * 2^( E - 127 ) * ( 1 + F ) donde: • S es el bit del signo, 0 si es positivo y 1 para los negativos. • E es el exponente al que se le debe restar 127 para obtener el equivalente codificado. • F es la parte decimal, la única que se expresa y la que se le suma a 1 para realizar el cálculo. ERROR POR TRUNCAMIENTO (PROPAGACION DE ERRORES) Ejemplo: Consideremos una máquina en la que =10, n = 6, mediante error de truncado. Hallar a2 – b2, con a=1001 y b = 1000. Error relativo de la representación es de 10-6+1=10-5 a) a2: 0.1001x104 x 0.1001x104 = 0.010020x108 = 1002000; a2: 1001x1001 = 1002001 b2: 0.1x104 x 0.1x104= 0.01x108 = 1000000 a2 – b2=1002000-1000000=2000 (máquina) a2 – b2=1002001-1000000=2001 (valor verdadero) Equivalentemente, Sea a2 – b2 = (a-b)(a+b) a – b = 0,1001x104 – 0,1000x104 = 0,0001x104 = 0,1x101 a + b = 0,1001x104 + 0,1000x104 = 0,2001x104 (a-b)(a+b) = 0,1x101 x 0,2001x104 = 0,02001x105 = 2001 Los procesos matemáticos equivalentes, pueden no ser computacionalmente equivalente. Ejemplo: Consideremos una máquina en la que = 10, n = 6, mediante error de truncado. Hallar a) a + (b + c) b) (a + b) + c Si a = 1, b = 108 y c = -108, entonces
Compartir