470 likes | 910 Views
Aritmética Binaria. Suma, Resta , Multiplicación,División , Números Binarios con Signo , Números Binarios Punto Flotante. Aritmética Binaria - Suma de Números Binarios. SUMA de Números Binarios La tabla de sumar para números binarios es la siguiente :
E N D
AritméticaBinaria Suma, Resta, Multiplicación,División, NúmerosBinarios con Signo, NúmerosBinarios Punto Flotante.
AritméticaBinaria - Suma de NúmerosBinarios SUMA de NúmerosBinarios La tabla de sumar para números binarios es la siguiente: Esto es, las posibles combinaciones al sumar dos bits son las siguientes: Note que al sumar 1 + 1 es 102, es decir, llevamos 1 a la siguiente posición de la izquierda (bit de accarreo o carry bit). Esto es equivalente en el sistema decimal a sumar 9 + 1, que da 10: cero en la posición que estamos sumando y un 1 de acarreo a la siguiente posición.
AritméticaBinaria - Suma de NúmerosBinarios Ejemplo: Operamos como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro ejemplo, al sumar los bits en la quinta posición o quinta columna, es decir, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y llevamos 1 (este 1 se llamabit de acarreo ocarry bit). A continuación se suma el acarreo a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas las columnas (exactamente como en decimal).
AritméticaBinaria - Representación de números con signo Representación de Números con Signo Enmatemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo “−” (menos o negativo). Sin embargo, en una computadora, hay varias formas de representar el signo de un número. Aquí se verán cuatro métodos de extender el sistema binario para representar números con signo: • Signo y magnitud. • Complemento a uno. • Complemento a dos. • Exceso K, donde normalmente K equivale a bn-1.
AritméticaBinaria - Representación de números con signo – signoy magnitud Signo y magnitud Un primer enfoque al problema de representar un número signado de n bits consiste en asignar: • Un bit para representar el signo. Ese bit a menudo es el bit más significativo o MSB (de sus siglas en inglés) y, por convención: un 0 denota un número positivo, y un 1 denota un número negativo; • los (n-1) bits restantes para representar el significado que es la magnitud del númeroen valor absoluto. Y se conoce como Signo y Magnitud. Este enfoque es directamente comparable a la forma habitual de mostrar el signo (colocando "+" o "-" al lado de la magnitud del número). Algunas de las primeras computadoras binarias (la IBM 7090) utilizaron esta representación, quizás por su relación obvia con la práctica habitual. El formato Signo y Magnitud es además el habitual para la representación del significando o magnitud en números punto flotante.
AritméticaBinaria - Representación de números con signo – signo y magnitud Ejemplo: Sea una representación en formato de Signo y Magnitud que nos permite codificar un número entero en binario con 8 bits (un byte). Esto es, 1 bit para el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, en teoría, al menos 28 = 256 números. Los cuales, según éste formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).
AritméticaBinaria - Representación de números con signo – signo y magnitud Supongamos ahora, que tenemos que representar el número -9710 (decimal). Procedemos a: • Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1; • Realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012; • Colocar todo junto, el número -9710 en binario con formato de Signo y Magnitud es: 111000012. Donde el 1 en el bit más significativo indica un número negativo, y 11000012 es el significando en valor absoluto. Para el caso inverso, dado un número binario en Signo y Magnitud, por ejemplo, 101101012, procedemos a: • Analizar el bit más significativo, que siendo un 1 indica que el número es negativo; • Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que el valor obtenido está en valor absoluto y la magnitud real estará dada por el bit de signo obtenido antes: 01101012 = |5310|. Siendo que el bit de signo es 1, el número real es -5310. Si el bit de signo fuese 0, el número hubiese sido +5310.
AritméticaBinaria - Representación de números con signo – signo y magnitud Desventajas de la representación en Signo y Magnitud: Siguiendo con el ejemplo de n = 8 (8 bits): • Es más complejo operar aritméticamente. Para realizar una suma, por ejemplo, primero hay que determinar si los dos números tienen el mismo signo, y en caso de que sea así, realizar la suma de la parte significativa (magnitud), pero en caso contrario, restar el mayor del menor y asignar el signo del mayor. • Posee doble representación del cero. Al representar en Signo y Magnitud, aparece el cero signado: 000000002 (+010) y 100000002 (-010). Ventajas de la representación en signo y magnitud Siguiendo con el ejemplo de n = 8 (8 bits): • Posee un rango simétrico: los números van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 = 100000002, hasta el -12710 = 111111112. Y en forma general, para n-bits, el rango (en decimal) para Signo y Magnitud es (-2n-1+1; 2n-1-1), o bien ± 2n-1-1.
AritméticaBinaria - Representación de números con signo – complement a uno Complemento a Uno (complemento a la base menosuno) Otro enfoque sería representar números negativos usando el complemento a la base menos uno. En el caso de los números binarios, sería el complemento a uno y la forma del complemento a uno de un número binario es un NOT bit a bit (negación de bit a bit) aplicado al número, es decir, la inversión de unos por ceros y ceros por unos. De esta forma, en la representación por Complemento a uno de un número signado de n bits asignamos: • Un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un número positivo, y un 1 denota un número negativo; • los (n-1) bits restantes para representar el significando que es la magnitud del número en valor absoluto para el caso de números positivos, o bien, en el complemento a uno del valor absoluto del número, en caso de ser negativo. Observar así que la representación en Complemento a uno de un número negativo se puede obtener de la representación en Signo y Magnitud por una mera inversión de unos por ceros y ceros por unos del significando (magnitud). Este sistema numérico de representación era común en computadoras más antiguas; elPDP-1 y la serie de UNIVAC 1100/2200, entre muchas otras, utilizaron la aritmética en complemento a uno. Los protocolos de Internet IPV4, ICMP, UDP y TCP usan todos el mismo algoritmo de suma de verificación de 16 bits en complemento a uno. Aunque la mayoría de la computadoras carecen del hardware para manejar acarreo del último bit (end-aroundcarry), la complejidad adicional es aceptada ya que es igualmente sensible a errores en todas las posiciones de bits. En UDP, una representación de todos ceros indica que la suma de verificación opcional ha sido omitida. La otra representación, todos unos, indica un valor 0 en la suma de verificación (las sumas de verificación son obligatorias para IPv4, TCP e ICMP; fueron omitidas en IPv6).
AritméticaBinaria - Representación de números con signo – complemento a uno Ejemplo: Sea una representación en formato de Complemento a uno que nos permite codificar en binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y Magnitud, esto nos otorga 1 bit para el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, en teoría, al menos 28 = 256 números. Los cuales, según éste formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).
AritméticaBinaria - Representación de números con signo – complemento a uno Supongamos ahora, que tenemos que representar el número -9710. Procedemos a: • Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1; • Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse en complemento a uno. Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es C1(1100001) = 00111102; • Colocar todo junto, el número -9710 en binario con formato de Complemento a uno es: 100111102. Donde el 1 en el bit más significativo indica un número negativo, y 00111102 es el significando en complemento a uno del valor absoluto del número. Para el caso inverso, dado un número binario en Complemento a uno, por ejemplo, 101101012, procedemos a: • Analizar el bit más significativo, que siendo un 1 indica que el número es negativo; • Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido está en valor absoluto, que la magnitud real estará dada por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es el caso) se deberá obtener el complemento a uno: C1(0110101) = 10010102 = |7410|. Siendo que el bit de signo es 1, el número real es -7410. Si el bit de signo fuese 0, el número hubiese sido 01101012 = +5310 ('sin complementar a uno). Nota: La operación C1() representa complemento a uno.
AritméticaBinaria - Representación de números con signo – complemento a uno Desventajas de la representación en Complemento a uno: Siguiendo con el ejemplo de n = 8 (8 bits): • Posee doble representación del cero. Al representar en Complemento a uno, aparece nuevamente el cero signado: 000000002 (+010) y 111111112 (-010). Ventajas de la representación en Complemento a uno Siguiendo con el ejemplo de n = 8 (8 bits): • Posee un rango simétrico: los números van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 = 111111112, hasta el -12710 = 100000002. Y en forma general, para n bits, el rango (en decimal) para Complemento a uno es (-(2n-1-1); 2n-1-1), o bien ± 2n-1-1. • Permite operar aritméticamente. Nota:al operar se debe sumar el acarreo (carry) obtenido al final de la adición/resta realizadas (conocido como end-aroundcarry), en caso de haberlo obtenido, para conseguir el resultado correcto. Por ejemplo: 000101012 + 100111102 = 101100112 (+2110 + -9710 = -7610) puesto que el end-aroundcarry es cero; pero, 000000102 + 111111102 = 1000000002 (+210 + -110 = 010 ≠ +110), que corregimos mediante 000000102 + 111111102 = 000000002 + 12 = 000000012, que es el resultado correcto.
AritméticaBinaria - Representación de números con signo – complement a dos Complemento a Dos (complemento a la base) Otro enfoque sería representar números negativos usando el complemento a la base. En el caso de los números binarios, sería el complemento a dos. La forma de obtener el complemento a dos de un número binario es mediante la obtención del complemento a uno y sumarle uno, o bien: Ejemplo 1 Ejemplo 2 1. Empezando desde la derecha encontramos el primer '1' 0101001 0101100 2. Hacemos un NOT a todos los bits que quedan por la izquierda 1010111 1010100 De esta forma, en la representación por Complemento a dos de un número signado de n bits asignamos: • Un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un número positivo, y un 1 denota un número negativo; • los (n-1) bits restantes para representar el significando que es la magnitud del número en valor absoluto para el caso de números positivos, o bien, en el complemento a dos del valor absoluto del número, en caso de ser negativo. Observar así que la representación en Complemento a dos de un número negativo se puede obtener de la representación en Signo y Magnitud por una mera inversión de unos por ceros y ceros por unos del significando, y sumarle uno al valor obtenido. Nota: El complemento a dos es el método más utilizado en computadoras para representar números negativos, aunque también se utilizan otros métodos para casos o usos especiales.
AritméticaBinaria - Representación de números con signo – complemento a dos Ejemplo: Sea una representación en formato de Complemento a dos que nos permite codificar en binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y Magnitud, y Complemento a uno, esto nos otorga 1 bit para el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, 28 = 256 números. Los cuales, según éste formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).
AritméticaBinaria - Representación de números con signo – complemento a dos Supongamos ahora, que tenemos que representar el número -9710. Procedemos a: • Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1; • Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse en complemento a dos. Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es C1(1100001) = 00111102, le sumamos uno para obtener el complemento a dos: 00111102 + 00000012 = 00111112; • Colocar todo junto, el número -9710 en binario con formato de Complemento a dos es: 100111112. Donde el 1 en el bit más significativo indica un número negativo, y 00111112 es el significando en complemento a dos del valor absoluto del número. Para el caso inverso, dado un número binario en Complemento a dos, por ejemplo, 101101012, procedemos a: • Analizar el bit más significativo, que siendo un 1 indica que el número es negativo; • Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido está en valor absoluto, que la magnitud real estará dada por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es el caso) se deberá obtener el complemento a dos: C2(0110101) = C1(0110101) + 00000012, luego C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|. Siendo que el bit de signo es 1, el número real es -7510. Si el bit de signo fuese 0, el número hubiese sido 01101012 = +5310 (sin complementar a dos). Nota: La operación C2()representa complemento a dos.
AritméticaBinaria - Representación de números con signo – complemento a dos Desventajas de la representación en Complemento a dos: Siguiendo con el ejemplo de n = 8 (8 bits): • Posee un rango asimétrico: los números van del +12710011111112, pasando por el +010, 000000002. Y aquí aparece la primera diferencia, el 111111112, ya no es -010 como en la representación anterior, sino que es -110, y al llegar al 100000002 nos encontramos con que el complemento a dos de 100000002 es 100000002, ¡el mismo número!. Por convención, se asigna a este número particular el valor -1282 (para 8 bits). Luego, en forma general, para n bits, el rango (en decimal) para Complemento a dos es (-2n-1; 2n-1-1). Ventajas de la representación en Complemento a dos: Siguiendo con el ejemplo de n = 8 (8 bits): • No posee doble representación del cero. • Permite operar aritméticamente.
AritméticaBinaria - Representación de números con signo – en exceso a K En Exceso a K Un último enfoque al problema de representar un número signado es el exceso a K, donde a cada número se le suma el mismo valor, y está en exceso por dicho valor. Este formato es habitual para la representación del exponente en números en punto flotante. K no tiene un valor estandarizado, pero suele tomarse como 2n-1 (que coincide con el complemento a dos con el bit más significativo negado), o como 2n-1-1 (como en el caso de la norma IEEE-754). Ejemplo de Exceso2n-1 : Sea una representación en formato de Exceso que nos permite codificar en binario en punto fijo con 8 bits (un byte). Luego, los números 8 bits serán representados en Exceso a 28-1 = 12810. Con 8 bits, podemos representar, 28 = 256 números.
AritméticaBinaria - Representación de números con signo – en exceso a K Supongamos ahora, que tenemos que representar el número -9710. Procedemos a: • Tomar el número -9710 y sumarle el exceso, en este caso 12810, luego -9710 + 12810 = 3110; • Convertimos a binario, en este caso. Luego, 3110 = 000111112. Para el caso inverso, dado un número binario en Exceso 12810, por ejemplo, 101101012, procedemos a: • Convertir el número a la base deseada, por ejemplo, en decimal: 101101012 = 18110; • Pero el valor obtenido está en exceso 128, luego debemos quitarle dicho exceso, restando 128: 18110 - 12810 = 5310.
AritméticaBinaria - Representación de números con signo – en exceso a K Desventajas de la representación en Exceso 2n-1: Siguiendo con el ejemplo de n = 8 (8 bits): • Requiere de operaciones aritméticas intermedias para su obtención, y de cambiar el número de bits se deben actualizar dichas operaciones intermedias para reflejar el nuevo exceso. • Posee rango asimétrico: éste va desde +12810 = 111111112 hasta -12710 = 000000002. Y en forma general, para n bits, el rango (en decimal) para Exceso 2n es (-2n-1+1; 2n-1). Ventajas de la representación en Exceso 2n-1: Siguiendo con el ejemplo de n = 8 (8 bits): • El menor número posible de representar consiste en todos los bits en cero y el mayor en unos. • Permite operar aritméticamente, pero hay que tener en cuenta que cada operación lleva asociado su exceso y esto hay que restárselo al resultado final, para corregir la representación. Por ejemplo, 000111102 + 101101012 = 110100112 (-9710 + 5410 = 21110 ≠ -4310). El resultado, en aparente exceso 12710, 21110, al quitarle dicho exceso es 21110 - 12710 = 8410. Pero, hay que tener en cuenta que al sumar dos números con exceso 12710, debemos restar, dos veces el exceso. Luego 8410 - 12710 = -4310, que es el resultado correcto. • No hay empaquetación del número. Por esto nos referimos a que no hay que recordar que partes del número son signo y significando (magnitud), sino que los n bits, son el número.
AritméticaBinaria - Representación de números con signo Tabla de Comparación
AritméticaBinaria - Resta de NúmerosBinarios RESTA de NúmerosBinarios El algoritmo de la resta en sistema binario es el mismo que en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia. Las restas básicas 0 - 0, 1 - 0 y 1 - 1 son evidentes: • 0 - 0 = 0 • 1 - 0 = 1 • 1 - 1 = 0 • 0 - 1 = 1 (se transforma en 10 - 1 = 1) (en sistema decimal equivale a 2 - 1 = 1) La resta 0 - 1 se resuelve igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 0 - 1 = 1 y me llevo 1 (este valor se resta al resultado que obtenga, entre el minuendo y el sustraendo de la siguiente columna), lo que equivale a decir en el sistema decimal, 2 - 1 = 1. En sistema decimal sería: 17 - 10 = 7 y 217 - 171 = 46.
AritméticaBinaria - Resta de NúmerosBinarios Para simplificar las restas y reducir la posibilidad de cometer errores hay varios métodos: • Dividir los números largos en grupos. En el siguiente ejemplo, vemos cómo se divide una resta larga en tres restas cortas: • Utilizar el complemento a dos (C2). La resta de dos números binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. La siguiente resta, 91 - 46 = 45, en binario es: En el resultado nos sobra un bit, que se desborda por la izquierda. Pero, como el número resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia.
AritméticaBinaria - Resta de NúmerosBinarios Un último ejemplo: vamos a restar 219 - 23 = 196, directamente y utilizando el complemento a dos: Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto: 11000100 en binario, 196 en decimal. • Utilizando el complemento a uno (C1). La resta de dos números binarios puede obtenerse sumando al minuendo el complemento a uno del sustraendo y a su vez sumarle el bit que se desborda.
AritméticaBinaria - Producto de NúmerosBinarios PRODUCTO de NúmerosBinarios La tabla de multiplicarpara números binarios es la siguiente: El algoritmo del producto en binario es igual que en números decimales; aunque se lleva a cabo con más sencillez, ya que el 0 multiplicado por cualquier número da 0, y el 1 es elelemento neutro o identidad del producto. Por ejemplo, multipliquemos 10110 por 1001:
AritméticaBinaria - Producto de NúmerosBinarios– algorítmo de Booth En sistemas electrónicos, donde suelen usarse números mayores o números con signos, se utiliza el método llamadoalgorítmo de Booth. Los números con signo se representan con complemento a dos. Para explicar el algoritmo de Booth, partiremos del ejemplo de la multiplicación 6 x 2 = 12: Como se puede ver en la imagen superior, partiendo de los números binarios de la multiplicación 6 x 2 (multiplicando y multiplicador) creamos tres nuevos números binarios del doble de tamaño (16 en el ejemplo): A, S y P, y se agrega un bit extra.
AritméticaBinaria - Producto de NúmerosBinarios – algorítmo de Booth Partiendo del número P (producto) comenzamos a comparar los últimos 2 bits de la derecha, siguiendo los casos base del recuadro: Se realizará esta comparación 8 veces en este ejemplo (número de bits de los operandos) y al final de cada comparación, realizamos un desplazamiento de un bit hacia la derecha, manteniendo el último bit de la izquierda, y descartando el último bit del lado contrario. Si hacemos una traza paso a paso nos quedarían los siguientes resultados:
AritméticaBinaria - División de NúmerosBinarios DIVISION de NúmerosBinarios La división en binario es similar a la decimal; la única diferencia es que a la hora de hacer las restas, dentro de la división, éstas deben ser realizadas en binario. Ejemplo: Dividir 100010010 (274) entre 1101 (13): Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo número de cifras (1000 entre 1101, en el ejemplo). Si no puede dividirse (la parte del dividendo o residuo parcial es menor que el divisor) se produce un 0 en el cociente y se intenta la división tomando un dígito más en el dividendo (10001 entre 1101). Si es posible dividirse (la parte del dividendo o residuo es mayor que el divisor) se produce un 1 en el cociente, y se resta el divisor de la parte correspondiente del residuo parcial.
AritméticaBinaria - NúmerosBinarios Punto Flotante Números Binarios Punto Flotante Muchas aplicaciones requieren trabajar con números que no son enteros. Existen varias formas de representar números no enteros. Una de ellas es usando un punto fijo. Este tipo de representación ubica siempre el punto en alguna posición a la derecha del dígito menos significativo. Otra alternativa comúnmente usada es la que se conoce como representación en punto flotante, basada en la notación científica. Esto permite representar números muy grandes y muy pequeños sin incrementar el número de bits del número, y también permite representar números con componentes enteros y fraccionarios. Por ejemplo el número decimal 10.75 puede ser expresado como MantisaExponente 10.75x100 (exponente = 0) 1.075 x101(exponente = 1) El número decimal 241,506,800 MantisaExponente .2415068 x 109 (exponente = 9)
AritméticaBinaria - NúmerosBinarios Punto Flotante En general, un número punto flotante en cualquier base puede ser representado como ±d0.d1d2d3...dk x bexp Donde d0.d1d2d3...dkse conoce como la mantisa, b es la base y exp es el exponente. Para representar un número en punto flotante se requiere: • El signo del número. • El signo del exponente. • Dígitos para el exponente. • Dígitos para la mantisa. Dado que un número en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una única representación. Es por ello que se trabaja con números normalizados. Decimos que un número está normalizado si el dígito a la izquierda del punto está entre 0 y la base, es decir, 0 < dígito a la izquierda del punto < b. En particular, decimos que un número binario está normalizadosi el dígito a la izquierda del punto es igual a 1.
AritméticaBinaria - NúmerosBinarios Punto Flotante Estándar ANSI/IEEE 754-1985 para números binarios punto flotante Este estándar se desarrolló para facilitar la portabilidad de los programas de un procesador a otro y para alentar el desarrollo de programas numéricos sofisticados. Este estándar ha sido ampliamente adoptado y se utiliza prácticamente en todos los procesadores y coprocesadores aritméticos actuales. El estándar del IEEE define el formato para precisión simple de 32 bits, para precisión doble de 64 bits y para precisión extendida de 80 bits. El estándar traba con números normalizados (el dígito a la izquierda del punto es 1). Precisión Sencilla • En la mantisa se entiende que el punto binario está a la izquierda de los 23 bits. De hecho la mantisa consiste de 24 bits, pero ya que se trabaja con números normalizados, este bit a la izquierda del punto que siempre es 1, es obviado (no ocupa una posición en memoria). • Los 8 bits de exponente representan un exponente en exceso a 2n-1-1 = 127 (n = 8), que se obtiene añadiendo 127 al exponente real. El propósito es permitir números muy grandes o muy pequeños sin requerir un bit de signo aparte para el exponente. Esto permite un rango de exponentes de -126 a +128
AritméticaBinaria - NúmerosBinarios Punto Flotante • Un número punto flotante de 32 bits puede reemplazar a un entero binario de 129 bits. • Excepciones o casos especiales: • El número 0.0 se representa con todos 0’s . • Números no normalizados se representan con todos 0’s en el exponente y un número distinto a 0 en la mantisa. • El infinito se representa con todos 1’s en el exponente y todos 0’s en la mantisa. • Not a Number (NAN), no un número, son valores tales como la raíz de -1, con todos 1’s en el exponente y un número distinto a 0 en la mantisa.
AritméticaBinaria - NúmerosBinarios Punto Flotante Ejemplo: Representar el número 1011010010001 en punto flotante. 1011010010001 = 1.011010010001 x 1012 Asumiendo que es un número positivo (bit de signo = 0), tenemos: • Exponente = 12 + 127 = 139 = 10001011 • Mantisa (parte fraccionaria) = .011010010001 a 23 bits (el 1 a la izquierda del punto se omite. Siempre es 1)
AritméticaBinaria - NúmerosBinarios Punto Flotante Conversión Punto Flotante a Decimal Utilizar la siguiente fórmula para obtener el valor binario verdadero: Número = (-1)S(1 + F) (2E – 127) Ejemplo: El bit de signo es 1. El exponente en exceso es 10010001 = 145. Aplicando la fórmula obtenemos: Número = -1100011100010000000 = - 407,680
AritméticaBinaria - NúmerosBinarios Punto Flotante Precisión Doble • En la mantisa se entiende que el punto binario está a la izquierda de los 52 bits. De hecho la mantisa consiste de 53 bits, pero ya que se trabaja con números normalizados, este bit a la izquierda del punto que siempre es 1, es obviado (no ocupa una posición en memoria). • Los 11 bits de exponente representan un exponente en exceso a 2n-1-1 = 1023 (n = 11), que se obtiene añadiendo 1023 al exponente real. El propósito es permitir números muy grandes o muy pequeños sin requerir un bit de signo aparte para el exponente. Esto permite un rango de exponentes de -1022 a +1024
AritméticaBinaria - NúmerosBinarios Punto Flotante • Excepciones o casos especiales: • El número 0.0 se representa con todos 0’s . • Números no normalizados se representan con todos 0’s en el exponente y un número distinto a 0 en la mantisa. • El infinito se representa con todos 1’s en el exponente y todos 0’s en la mantisa. • Not a Number (NAN), no un número, con todos 1’s en el exponente y un número distinto a 0 en la mantisa.