Friday, 10 November 2017

Número De Coma Flotante Into Binary Options


Punto Flotante Thomas Finley, abril de 2000 Índice e Introducción Este documento explica el estándar de punto flotante IEEE 754. En él se explica la representación binaria de estos números, cómo convertir a decimal de coma flotante, cómo convertir de coma flotante a decimal, se analizan los casos especiales en coma flotante, y finalmente termina con algo de código C para promover la comprensión de los de punto flotante. Este documento no incluye las operaciones con números en coma flotante. Escribí este documento de manera que si usted sabe cómo representar, se puede omitir la sección de representación, y si usted sabe cómo convertir a decimal de precisión simple, puede saltarse esa sección, y si usted sabe cómo convertir a la precisión simple de decimal, se puede saltar esa sección. Representación En primer lugar, saber que los números binarios pueden tener, si perdonáis a los interminables que lo diga, un punto decimal. Funciona más o menos de la misma manera que el punto decimal hace con números decimales. Por ejemplo, el decimal 22.589 no es más que 22 y 510 -1 810 -2 910 -3. Del mismo modo, el número binario 101.001 es simplemente 12 2 02 1 12 0 02 -1 02 12 -2 -3. o más bien simplemente 2 2 2 0 2 -3 (este número en particular resulta ser 9.125, si eso ayuda a su forma de pensar). En segundo lugar, saben que los números binarios, como los números decimales, se pueden representar en notación científica. P. ej. El decimal 923.52 se puede representar como 9.2352 10 2. Del mismo modo, los números binarios puede expresarse de esa manera también. Digamos que tenemos el número binario 101.011,101 (que es 43.625). Esto se representa usando la notación científica como 1,01011101 2 5. Ahora estoy seguro de que el entendimiento es perfecto, por fin puedo entrar en la representación. La precisión simple unidad de coma flotante es un paquete de 32 bits, divididas en tres secciones uno bits, ocho bits, y veinte y tres bits, en ese orden. Voy a hacer uso del número binario se ha mencionado anteriormente 1,01011101 2 5 para ilustrar cómo se podría tomar un número binario en notación científica y representarla en notación de coma flotante. Si convertimos simplemente de hex a binario, 0x64 es 0110 0100, que es el mismo resultado que el producido 011.001 anteriormente. Este método es mucho más rápido. De todos modos Tomamos esos números que obtuvimos, y los representamos como 0.011001, de colocarlos en el orden en que los adquirieron. Poner en secuencia con nuestra representación binaria de 329, obtenemos 101001001.011001. En nuestra notación científica binaria, esto es 1.01001001011001 2 8. A continuación, utilizar lo que sabemos acerca de cómo los números de precisión simple se representan para completar este proceso. El signo es positivo, por lo que el campo signo es 0. El exponente es 8. 8 127 135, por lo que el campo exponente es 10000111. La mantisa es simplemente 01001001011001 (Recuerde que la implícita 1 de la mantisa significa que nosotros no incluir el principal 1) más Sin embargo muchos 0s tenemos que añadir a la derecha para hacer que el número binario de 23 bits de longitud. Dado que uno de los problemas de la tarea consiste en representar esto como hexagonal, voy a terminar con un número hexadecimal. Luego nos dividimos en cuatro piezas de bits (ya que cada dígito hexadecimal es el equivalente de 4 bits) y luego convertir cada cantidad de cuatro bits en el dígito hexadecimal correspondiente. Por lo tanto, en hexadecimal, este número es 0x43A4B200. Números especiales A veces, el equipo siente la necesidad de proponer un resultado de un cálculo que refleja que se han hecho algunos errores. Tal vez la magnitud del resultado de un cálculo era mayor o menor que este formato parece ser capaz de soportar. Tal vez se ha intentado dividir por cero. Tal vez usted está tratando de representar a cero ¿Cómo tratar con estas cuestiones la respuesta es que hay casos especiales de los números de punto flotante, específicamente cuando el campo exponente es todos los bits 1 (255) o todos los bits 0 (0). Desnormalizado Números Si usted tiene un campo exponente es todos sus bits de cero, esto es cuál es llamado un número sin normalizar. Con el campo exponente igual a cero, se podría pensar que el exponente real sería -127, por lo que este número podría tomar la forma de 1.MANTISSA 2 -127 como se ha descrito anteriormente, pero no es así. En cambio, es 0.MANTISSA 2 -126. Observe que el exponente ya no es el valor del campo exponente menos 127. Es simplemente -126. También notamos que ya no incluimos un implícito un bit para la mantisa. A modo de ejemplo, tomar el número de coma flotante representado como 0x80280000. En primer lugar, convertir esta a binario. Nuestro bit de signo es 1, por lo que este número es negativo. Nuestra exponente es 0, por lo que sabemos que este es un número sin normalizar. Nuestra mantisa es 0101, lo que refleja un verdadero mantisa de 0,0101 recordamos nosotros no incluir lo que antes era una implícita un bit para un exponente de cero. Por lo tanto, esto significa que tenemos un número -0,0101 -0,3125 2 2 10 -126 -126 -1.25 2 10 2 -128. Cero Usted puede pensar en cero como simplemente otro número sin normalizar. Zero está representado por un exponente de cero y una mantisa de cero. De nuestra comprensión de los números no normalizados, esto se traduce en 02 -126 0. Este bit de signo puede ser positivo (0) o negativo (1), que conduce a ya sea un cero positivo o negativo. Ésto no tiene mucho sentido matemáticamente, pero se permite. Infinity Al igual que el caso de todos los bits cero en el campo exponente es un caso especial, por lo que es el caso de todos los bits uno. Si el campo de exponente es todo unos, y la mantisa es todo ceros, a continuación, este número es una infinidad. No puede haber infinitos, ya sea positivo o negativo dependiendo del bit de signo. Por ejemplo, 0x7F800000 es infinito positivo, y 0xFF800000 es infinito negativo. NaN (no un número) Estas cantidades especiales tienen un campo exponente de 255 (todos los bits uno) como el infinito, pero difieren de la representación del infinito en que la mantisa contiene algunos bits de uno. No importa dónde se encuentren o cuántos de ellos hay, con tal de que hay algunos. El bit de signo parece tener nada que ver con esto. Ejemplos de esto incluyen 0x7FFFFFFF cantidad especial, 0xFF81ABD0, 0x7FAA12F9, y soforth. Resumen de los Casos especiales Un resumen de casos especiales se muestra en la siguiente tabla. Es más o menos una copia de la tabla que se encuentra en la página 301 de la segunda edición de la Organización de informática y diseño, el software de interfaz de hardware por Patterson y Hennessy, el libro de texto de Ciencias de la Computación 104 en el semestre de primavera de 2000. A pesar de que solamente estaba cubierta de precisión simple en el texto anterior, incluyo doble precisión en aras de la exhaustividad. Cuándo, dónde, y dónde no Cuando tiene operaciones como 0/0 o restando el infinito desde el infinito (o algún otro tipo de cálculo ambigua), obtendrá NaN. Cuando se divide un número por cero, obtendrá una infinidad. Sin embargo, lo que representa para estas operaciones especiales requiere algún esfuerzo adicional por parte del diseñador, y puede dar lugar a operaciones más lentas a medida que más transistores se utilizan en el diseño de chips. Por esta razón a veces CPUs no tienen en cuenta para estas operaciones, y en lugar de generar una excepción. Por ejemplo, cuando trato de dividir por cero o hacer operaciones con el infinito, el ordenador genera excepciones y se niega a completar la operación (mi equipo tiene un procesador G3 o MPC750). Ayudante de software Si usted está interesado en investigar más a fondo, que incluyen dos programas para los que proporciono el código C que se puede ejecutar para obtener una mayor comprensión de cómo funciona flotante de punto, y también para comprobar su trabajo en varias tareas. Hex 2 Flotador Este programa acepta como entrada una cantidad hexadecimal y lo lee como datos en bruto en el theFloat variable. Entonces, el programa da salida a la representación hexadecimal de los datos en theFloat (la repetición de la entrada), y las impresiones que junto a la cantidad de coma flotante que representa. Muestro aquí una muestra de ejecución del programa. Note las cantidades de puntos de caso especial flotantes (0, infinito, y no un número). Para eliminar la normalización de los números pero no cero, este programa mostrará cero a pesar de que el número no es realmente cero. Si desea solucionar este problema, reemplace el f de la cadena de formato de la función printf con el correo, que deplay el número de gran precisión con la notación científica. Yo no lo tenía como el correo porque me resulta muy molesto notación científica. Flotador 2 Hex Esta es una ligera modificación del programa de flotadores Hex 2. La excepción es que se lee en un número de coma flotante. Al igual que la forma y da salida hexadecimal más el número de coma flotante. De nuevo incluyo una muestra de ejecución de este programa, lo que confirma los resultados de los problemas de ejemplo he cubierto al principio de este texto, junto con algunos otros casos sencillos. Note la representación hexadecimal de 0,2. Y ese es el final de ese capítulo. Thomas Finley 2000Float a la conversión el procedimiento de conversión decimal Las reglas para la conversión de un número en coma flotante en decimal son simplemente para revertir del punto decimal a la conversión de coma flotante: Si el número original es en hexadecimal, convertirlo a binario. Separar en los campos signo, exponente y mantisa. Se extrae la mantisa del campo mantisa, y restaurar el líder de uno. También puede omitir los ceros a la derecha. Extraer el exponente del terreno de exponente, y restar el sesgo de recuperar el exponente real de dos. Como antes, el sesgo es 2 k minus1 menos 1, donde k es el número de bits en el campo exponente, dando 3 para el formato de 8 bits y 127 para el 32-bit. De-normalizar el número: mover el punto binario por lo que el exponente es 0, y el valor del número se mantiene sin cambios. Convierte el valor binario a decimal. Esto se realiza al igual que con los números enteros binarios, pero los valores lugar correcto del punto binario son fracciones. Ajuste el signo del número decimal de acuerdo con el bit de signo del número en coma flotante inicial: que sea negativo para 1 positivo de la licencia de 0. Si el exponente binario es muy grande o pequeño, puede convertir la mantisa directamente a diez sin de - normalizadora. A continuación, utilice una calculadora para elevar dos para el exponente, y realizar la multiplicación. Esto le dará una respuesta aproximada, pero es suficiente en la mayoría de los casos. Ejemplos usando el procedimiento de conversión de convertir el número en coma flotante e7 de 8 bits (en hexadecimal) a decimal. Convertir: e7 16 11100111 2. Seprate: 1 110 0111 Mantisa: 1.0111 Exponente: 110 2 6 10 6 menos 3 3. de considerarse algo normal: 1,0111 2 veces 2 3 1011.1 Convert: decimal en punto flotante Conversiones procedimiento, la conversión Las reglas para la conversión de un número decimal en punto flotante son los siguientes: convertir el valor absoluto del número a binario, tal vez con una parte fraccionaria después del punto binario. Esto se puede hacer mediante la conversión de las partes integrantes y fraccionarios separado. La parte integral se convierte con las técnicas anteriormente examinados. La parte fraccionaria se puede convertir mediante multiplicación. Este es básicamente el inverso del método de división: que repetidamente se multiplica por 2, y la cosecha cada uno un bit como aparece izquierda del punto decimal. Anexar veces 2 0 al final del número binario (que no cambia su valor). Normalizar el número. Mover el punto binario de modo que es un bit de la izquierda. Ajustar el exponente de dos, de manera que el valor no cambia. Coloque la mantisa en el campo de mantisa del número. Omita el uno, y rellenar con ceros a la derecha. Añadir el sesgo al exponente de dos, y lo coloca en el campo exponente. El sesgo es 2 k minus1 menos 1, donde k es el número de bits en el campo exponente. Para el formato de ocho bits, k 3, por lo que el sesgo es 2 3minus1 menos 1 3. Para IEEE de 32 bits, k 8, por lo que el sesgo es 2 8minus1 menos 1 127. Establecer el bit de signo, 1 para el negativo, 0 para positiva, según el signo del número original. Usando el procedimiento de conversión Convierte 2.625 a nuestro formato de coma flotante de 8 bits. La parte entera es fácil, 2 10 10 2. Para la parte fraccionaria: Generar 1 y no queda nada. Así 0,40625 10 0,01101 2. Normalizar: 0.01101 1.101 2 2 2 -2 veces. Mantisa es 1010, es exponente -2 3 1 001 2. bit de signo es 0. Por lo tanto es 0,40625 0 001 1010 1a 16 Convertir -12,0 a nuestro formato de punto flotante de 8 bits. 12 10 1100 2. Normalizar: 1100.0 1.1 2 2 2 veces 3. Mantisa es de 1000, exponente es 3 3 6 110 2. bit de signo es 1. Así es -12.0 1 110 1000 e8 16 Conversión decimal 1.7 a nuestro formato de coma flotante de 8 bits. La parte entera es fácil, 1 10 1 2. Para la parte fraccionaria: Generar 1 y continuar con el resto. La razón por la cual el proceso parece continuar sin fin es que lo hace. El número 7/10, lo que hace que una fracción decimal perfectamente razonable, es una fracción de repetición en binario, así como la fracción 1/3 es una fracción de repetición en decimal. (Se repite en binario también.) No podemos representar esta exactamente como un número de coma flotante. Lo más cerca que podemos llegar en cuatro bits es 0.1011. Como ya tenemos una de las principales 1, el mejor número de ocho bits que podemos hacer es 1.1011. Ya normalizó: 1.1011 1.1011 2 2 2 veces 0. Mantisa es 1011, exponente es 0 3 3 2 011. bit de signo es 0. El resultado es 0 011 1011 16 3b. Esto no es exacto, por supuesto. Si convierte de nuevo a decimal, se obtiene 1.6875. Convertir -1313.3125 al formato de punto flotante IEEE de 32 bits. La parte entera es 1313 10 10100100001 2. El fraccionada: Generar 0 y seres continue. A Tutorial sobre representación de datos enteros, números en coma flotante, y caracteres Número sistemas humanos utilizan decimal (base 10) y duodecimal (base 12) sistemas de números para contar y mediciones (probablemente debido a que tenemos 10 dedos y dos dedos de los pies grandes). Los equipos utilizan binario sistema numérico (base 2), ya que están hechos a partir de componentes digitales binarios (conocido como transistores) que operan en dos estados - encendido y apagado. En informática, también utilizamos hexadecimal (base 16) u octal (base 8) sistemas de numeración, como una forma compacta para representar números binarios. Decimal (base 10) sistema de numeración decimal sistema numérico tiene diez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9, llamado dígitos s. Se utiliza la notación posicional. Es decir, el dígito menos significativo (dígito del extremo derecho) es del orden de 100 (unidades o unos), más a la derecha segundo dígito es del orden de 101 (decenas), el tercer dígito del extremo derecho es de del orden de 102 (cientos), y así sucesivamente. Por ejemplo, nosotros designaremos un número decimal con un sufijo opcional D si surge la ambigüedad. Binario (base 2) sistema de numeración binario Número de sistema tiene dos símbolos: 0 y 1, denominados bits. También es una notación posicional. Por ejemplo, nosotros designaremos un número binario con un sufijo B. Algunos lenguajes de programación denotan números binarios con prefijo 0b (por ejemplo 0b1001000), o prefijo b con los bits citados (por ejemplo b10001111). Un dígito binario se llama un poco. Ocho bits se llama un byte (¿por unidad de 8 bits Probablemente porque 82 3). Hexadecimal (base 16) sistema numérico Número de sistema hexadecimal utiliza 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, y F, llamados dígitos hexadecimales . Es una notación posicional. Por ejemplo, nosotros designaremos un número hexadecimal (en pocas palabras, hexagonal) con un sufijo H. Algunos lenguajes de programación denotan números hexadecimales con prefijo 0x (por ejemplo), o 0x1A3C5F prefijo x con el dígito hexadecimal citado (por ejemplo xC3A4D98B). Cada dígito hexadecimal también se llama un dígito hexadecimal. La mayoría de los lenguajes de programación aceptan minúsculas A a F, así como mayúsculas A a F. Computadoras utiliza el sistema binario en sus operaciones internas, ya que se construyen a partir de componentes electrónicos digitales binarios. Sin embargo, escribir o leer una larga secuencia de bits binarios es engorroso y propenso a errores. sistema hexadecimal se utiliza como una forma resumida o abreviada de bits binarios. Cada dígito hexadecimal es equivalente a 4 bits binarios, es decir, la abreviatura de 4 bits, de la siguiente manera: Sustituir cada dígito hexadecimal por los 4 bits equivalentes, por ejemplo, la conversión de binario a hexadecimal A partir de más a la derecha de bits (bit menos significativo) , en lugar de cada grupo de 4 bits por el dígito hexadecimal equivalente (almohadilla de los bits de la izquierda con cero si es necesario), para ejemplos, es importante tener en cuenta que el número hexadecimal proporciona una forma resumida o abreviada de representación de bits binarios. La conversión de la base r para decimal (base 10) Dada una base de n - dígitos número r: dn-1 dn dn-2-3. D3 D2 D1 D0 (base r), el equivalente decimal es igual a: La conversión de decimal (base 10) a la Base r El uso repetido de división / resto. Por ejemplo, el procedimiento anterior es efectivamente aplicable a la conversión entre cualquier sistema de base 2. Por ejemplo, el general de conversión entre los 2 sistemas de bases con fraccional parte separada de la integral y las partes fraccionarias. Para la parte integrante, se divide por el objetivo Radix repetible, y recoger el ramainder en orden inverso. Para la parte fraccionaria, multiplicar la parte fraccionaria por el radix objetivo repetible, y recoger el papel integral en el mismo orden. Ejercicios (Número de sistemas de conversión) Convertir los siguientes números decimales en números binarios y hexadecimal: 108 4848 9000 Convertir los siguientes números binarios en números hexadecimales y decimales: 1000011000 10000000 101010101010 Convertir los siguientes números hexadecimales en números binarios y decimales: Convertir ABCDE 1234 80F del los siguientes números decimales en equivalente binario: Respuestas 19.25D 123.456D: Usted podría utilizar la Calculadora de Windows (calc. exe) para llevar a cabo la conversión de sistema de numeración, estableciéndolo en el modo científico. (Menú Ejecutar quotcalcquot RARR Seleccionar quotViewquot RARR Elige el modo quotProgrammerquot o quotScientificquot.) 1101100B. 1001011110000B. 10001100101000B. 6CH. 12F0H. 2328H. 218H. 80H. AAAH. 536D. 128D. 2730D. 10101011110011011110B. 1001000110100B. 100000001111B. 703710D. 4660D. 2063D. Computer memoria amp representación de datos de ordenador utiliza un número fijo de bits para representar una pieza de información, lo que podría ser un número, un carácter, o de otros. Una ubicación de almacenamiento de n bits puede representar hasta 2 n entidades distintas. Por ejemplo, una ubicación de memoria 3 bits puede contener uno de estos ocho patrones binarios: 001. 010. 011. 000. 100. 101. 110. o 111. Por lo tanto, puede representar un máximo de 8 entidades distintas. Se podría utilizar para representar los números del 0 al 7, los números 8881 a 8888 caracteres A a H, o hasta 8 tipos de frutas como manzana, naranja, plátano o hasta 8 tipos de animales como el león, el tigre, etc. enteros, por ejemplo, puede ser representado en 8 bits, 16 bits, 32 bits o 64 bits. Usted, como el programador, elija un bit de longitud apropiada para sus números enteros. Su elección impondrá restricción en el rango de números enteros que pueden ser representados. Además de la longitud de bits, un número entero se puede representar en diversos esquemas de representación, por ejemplo, vs sin signo enteros con signo. Un entero sin signo de 8 bits tiene un rango de 0 a 255, mientras que un entero de 8 bits tiene un rango de -128 a la 127 - ambos en representación de 256 números distintos. Es importante tener en cuenta que una ubicación de memoria de ordenador simplemente almacena un patrón binario. Es totalmente de usted, como el programador, para decidir sobre cómo estos patrones se han de interpretar. Por ejemplo, el patrón binario de 8 bits quot0100 0001Bquot puede ser interpretado como un entero sin signo de 65 años o un carácter ASCII A. o alguna información secreta que sólo usted conozca. En otras palabras, usted tiene que decidir en primer lugar la forma de representar una porción de datos en un patrón binario antes de que los patrones binarios tienen sentido. La interpretación de patrón binario se llama representación de datos o de codificación. Por otra parte, es importante que los sistemas de representación de datos están de acuerdo en-upon por todas las partes, es decir, las normas industriales necesitan ser formulado y seguido recto. Una vez que decidió en el esquema de representación de datos, ciertas limitaciones, en particular, se impondrán la precisión y alcance. Por lo tanto, es importante comprender la representación de datos para escribir programas correctos y de alto rendimiento. Roseta Stone y el desciframiento de los jeroglíficos egipcios Jeroglíficos (siguiente-a-izquierda) fueron utilizados por los antiguos egipcios desde el año 4000 AC. Por desgracia, ya 500 DC, nadie podía ya leer los jeroglíficos egipcios antiguos, hasta que el re-descubrimiento de la Piedra de Roseta en 1799 por las tropas de Napoleón (Napoleón durante la invasión egipcia), cerca de la ciudad de Rashid (Rosetta) en el delta del Nilo. La piedra de Rosetta (izquierda) está inscrito con un decreto en 196BC en nombre del rey Ptolomeo V. El decreto aparece en tres escrituras: el texto es superior jeroglíficos del antiguo Egipto. la escritura demótica parte media, y el griego clásico más bajo. Debido a que presenta esencialmente el mismo texto en las tres secuencias de comandos, y el griego antiguo todavía se podría entender, que proporcionó la clave para el desciframiento de los jeroglíficos egipcios. La moraleja de la historia es menos que sepa el esquema de codificación, no hay manera de que se puede decodificar los datos. Referencia e imágenes: Wikipedia. Los enteros representación entera son números enteros o números de punto fijo en el punto fijo después de que el bit menos significativo radix. Son contraste con los números reales o números de punto flotante. donde la posición del punto de base varía. Es importante tener en cuenta que los números enteros y de coma flotante son tratados de manera diferente en los ordenadores. Tienen representación diferente y se procesan de forma diferente (por ejemplo, números de coma flotante se procesan en un procesador de llamada de punto flotante). números de coma flotante se discutirán más adelante. Los equipos utilizan un número fijo de bits para representar un número entero. Los bits de longitudes de uso común para los enteros son de 8 bits, 16 bits, 32 bits o 64 bits. Además de bits longitudes, hay dos esquemas de representación de números enteros: números enteros sin signo. puede representar cero y números enteros positivos. Los enteros con signo. puede representar cero, números enteros positivos y negativos. Se han propuesto tres esquemas de representación de enteros con signo: Muestra de magnitud 1s 2s representación de complemento a la representación de complemento representación Usted, como el programador, deberá decidir sobre la longitud de bits y el esquema de representación para sus números enteros, dependiendo de sus requisitos de las aplicaciones. Supongamos que tiene un contador para contar una pequeña cantidad de 0 hasta 200, es posible elegir el esquema entero sin signo de 8 bits ya que no hay números negativos implicados. n bits enteros sin signo enteros sin signo pueden representar cero y números enteros positivos, pero los números enteros no negativos. El valor de un entero sin signo se interpreta como quot la magnitud de su subyacente quot patrón binario. Ejemplo 1: Supongamos que n 8 y el patrón binario es 0100 0001B. el valor de este número entero sin signo es 1times20 1times26 65D. Ejemplo 2: Supongamos que n 16 y el patrón binario es 0001 0000 0000 1000B. el valor de este número entero sin signo es 1times23 1times212 4104D. Ejemplo 3: Supongamos que n 16 y el patrón binario es 0000 0000 0000 0000b. el valor de este número entero sin signo es 0. Un patrón de bits n puede representar 2 números enteros n elementos distintos. Un n bits entero sin signo puede representar números enteros de 0 a (2 n) -1. tal como indicada a continuación: Los enteros con signo enteros con signo pueden representar cero, números enteros positivos, así como los números enteros negativos. Tres esquemas de representación están disponibles para los enteros con signo: 1s representación sesión de complemento a 2 Magnitud representación de complemento a la representación en todos los tres esquemas anteriores, el bit más significativo (MSB) se denomina el bit de signo. El bit de signo se utiliza para representar el signo del entero - con 0 para los números enteros positivos y 1 para los números enteros negativos. La magnitud del entero, sin embargo, se interpreta de manera diferente en diferentes esquemas. n bits Inscripción enteros sesión-Magnitud Representación en señal de magnitud: El bit más significativo (MSB) es el bit de signo. con valor de 0 representa el número entero positivo y 1 en representación de entero negativo. Los n -1 bits restantes representa la magnitud (valor absoluto) del número entero. El valor absoluto del entero se interpreta como quotthe magnitud de la (n -1) patternquot binario bits. Ejemplo 1. Supongamos que n 8 y la representación binaria es 0 100 0001B. bit de signo es 0 RARR Valor absoluto positivo es 100 0001B 65D Por lo tanto, el entero es 65D Ejemplo 2. Supongamos que n 8 y la representación binaria es 1 000 0001B. bit de signo es 1 RARR Valor absoluto negativo es 000 0001B 1D Por lo tanto, es el número entero Ejemplo 1D 3. Supongamos que n 8 y la representación binaria es 0 000 0000b. bit de signo es 0 RARR Valor absoluto positivo es 000 0000b 0D Por lo tanto, el entero es 0D Ejemplo 4. Supongamos que n 8 y la representación binaria es 1 000 0000b. bit de signo es 1 RARR Valor absoluto negativo es 000 0000b 0D Por lo tanto, el entero es -0D Los inconvenientes de la representación de sesión magnitud son: Hay dos representaciones (0000 y 1000 0000b 0000b) para el número cero, lo que podría conducir a la ineficiencia y Confusión. números enteros positivos y negativos necesitan ser procesados ​​por separado. n bits sesión enteros en 1s del complemento Representación En representación de complemento 1s: Una vez más, el bit más significativo (MSB) es el bit de signo. con valor de 0 que representan los números enteros positivos y 1 representan los números enteros negativos. Los n -1 bits restantes representan la magnitud del número entero, como sigue: para números enteros positivos, el valor absoluto del entero es igual a quotthe magnitud de la (n -1) bits patternquot binario. para enteros negativos, el valor absoluto del entero es igual a quotthe magnitud del complemento (inverso) de la (n -1) bits patternquot binario (por lo tanto llamado complemento 1s). Ejemplo 1. Supongamos que n 8 y la representación binaria 0 100 0001B. bit de signo es 0 RARR Valor absoluto positivo es 100 0001B 65D Por lo tanto, el entero es 65D Ejemplo 2. Supongamos que n 8 y la representación binaria 1 000 0001B. bit de signo es 1 RARR Valor absoluto negativo es el complemento de 000 0001B. es decir, 111 1110B 126D Por lo tanto, es el número entero Ejemplo -126D 3. Supongamos que n 8 y la representación binaria 0 000 0000b. bit de signo es 0 RARR Valor absoluto positivo es 000 0000b 0D Por lo tanto, el entero es 0D Ejemplo 4. Supongamos que n 8 y la representación binaria 1 111 1111b. bit de signo es 1 RARR Valor absoluto negativo es el complemento de 111 1111b. es decir, 000 0000b 0D Por lo tanto, el número entero es -0D Una vez más, los inconvenientes son: Hay dos representaciones (0000 0000b y 1111 1111b) para cero. Los números enteros positivos y negativos enteros necesitan ser procesados ​​por separado. n bits sesión enteros en 2s del complemento Representación en complemento a 2: Una vez más, el bit más significativo (MSB) es el bit de signo. con valor de 0 que representan los números enteros positivos y 1 representan los números enteros negativos. Los n -1 bits restantes representan la magnitud del número entero, como sigue: para números enteros positivos, el valor absoluto del entero es igual a quotthe magnitud de la (n -1) bits patternquot binario. para enteros negativos, el valor absoluto del entero es igual a quotthe magnitud del complemento de la (n -1) bits patrón binario más uno quot (por lo tanto llamado complemento 2s). Ejemplo 1. Supongamos que n 8 y la representación binaria 0 100 0001B. bit de signo es 0 RARR Valor absoluto positivo es 100 0001B 65D Por lo tanto, el entero es 65D Ejemplo 2. Supongamos que n 8 y la representación binaria 1 000 0001B. bit de signo es 1 RARR Valor absoluto negativo es el complemento de 000 0001B es decir, más 1. 111 1110B 1B 127D Por lo tanto, es el número entero Ejemplo -127D 3. Supongamos que n 8 y la representación binaria 0 000 0000b. bit de signo es 0 RARR Valor absoluto positivo es 000 0000b 0D Por lo tanto, el entero es 0D Ejemplo 4. Supongamos que n 8 y la representación binaria 1 111 1111b. bit de signo es 1 RARR Valor absoluto negativo es el complemento de 111 más 1. 1111b 0000b es decir, 000 1B 1D Por lo tanto, el entero es 1D Los equipos utilizan 2s del complemento Representación de enteros con signo Hemos discutido tres representaciones de enteros con signo: de magnitud con signo, 1s 2s complementan y se complementan. Los equipos utilizan complemento a 2 en la representación de enteros con signo. Esto se debe a: Sólo hay una representación para el número cero en complemento a 2, en lugar de dos representaciones en el inicio de sesión magnitud y complemento 1s. números enteros positivos y negativos pueden ser tratados conjuntamente en la suma y la resta. La resta se puede llevar a cabo utilizando el logicquot quotaddition. Ejemplo 1: La adición de dos números enteros positivos: Supongamos que N8, 65D 70D 5D Ejemplo 2: La resta se trata como adición de un positivo y un enteros negativos: Supongamos que N8, 5D - 5D 65D (-5D) 60D Ejemplo 3: La adición de dos enteros negativos: Supongamos que N8, -65D - 5D (-65D) (-5D) -70D Debido a la precisión fija (es decir, número de bits fija), un n 2s - bit complementar entero con signo tiene un cierto rango. Por ejemplo, para n 8. el intervalo de 2s complementan enteros con signo es -128 a 127. Durante la adición (y sustracción), es importante comprobar si el resultado supera este intervalo, en otras palabras, si se ha producido desbordamiento o subdesbordamiento. Ejemplo 4: desbordamiento: Supongamos que N8, 127D 129D 2D (desbordamiento - más allá de la gama) Ejemplo 5: subdesbordamiento: Supongamos que N8, -125D - 5D -130D (flujo inferior - por debajo del rango) En el diagrama siguiente se explica cómo los 2s complementan las obras . Al re-organización de la recta numérica, los valores de -128 a 127 están representados de forma contigua al ignorar el bit de acarreo. Rango de n 2s - bit complementar enteros con signo de una N bits 2s complementar entero con signo puede representar números enteros de -2 (n -1) a 2 (n-1) -1. como tabulada. Tome en cuenta que el esquema puede representar todos los números enteros dentro de la gama, sin ningún espacio. En otras palabras, no hay números enteros que faltan dentro del rango admitido. (263) -1 (9.223.372.036.854.775.807) (18 dígitos) 2s decodificación del complemento números de los cheques el bit de signo (denotado como S). Si S0. el número es positivo y su valor absoluto es el valor binario de los n -1 bits restantes. Si S1. el número es negativo. usted podría quotinvert el n -1 bits, y además 1quot para obtener el valor absoluto de un número negativo. Como alternativa, puede escanear los n -1 bits restantes de la derecha (bit menos significativo). Buscar la primera aparición de 1. Tira de todos los bits a la izquierda de la primera aparición de 1. El patrón volteado da el valor absoluto. Por ejemplo, el Big Endian vs tienda de ordenadores Little Endian moderno un byte de datos en cada dirección o ubicación de memoria, es decir, el byte de memoria direccionable. Un número entero de 32 bits está, por lo tanto, almacenarse en 4 direcciones de memoria. El termquotEndianquot se refiere al orden de almacenar bytes en la memoria del ordenador. En el esquema quotBig Endianquot, el byte más significativo se almacena por primera vez en la dirección de memoria más baja (o grande, en primer lugar), mientras que las tiendas quotLittle Endianquot los bytes menos significativos de la dirección de memoria más baja. Por ejemplo, el 12345678H entero de 32 bits (2215053170 10) se almacena como 78H 12H 34H 56H en big endian y 56H 78H 12H 34H en Little Endian. Un número entero 01H 00H de 16 bits se interpreta como 0001H en big endian, y 0100h tan poco endian. Ejercicio (entero Representación) ¿Cuáles son los rangos de 8 bits, 16 bits, 32 bits y entero de 64 bits, en quotunsignedquot y representación quotsignedquot Dar el valor de 88. 0. 1. 127. 255 y en 8 bits representación sin signo. Dar el valor de 88 -88. -1. 0. 1. -128. y 127 en 2s 8 bits complementar la representación firmada. Dar el valor de 88 -88. -1. 0. 1. -127. y 127 en la representación de señal de magnitud de 8 bits. Dar el valor de 88 -88. -1. 0. 1. -127 y 127 en 1s 8 bits complementan la representación. Hacer más. Respuestas La gama de n bits sin signo enteros es 0, 2n - 1. El rango de n 2s - bit complementar entero con signo es -2 (n-1), 2 (n-1) -1 88 (0101 1000). 0 (0000, 0000). 1 (0000 0001). 127 (0111 1111). 255 (1111 1111). 88 (0101 1000). -88 (1010 1000). -1 (1111 1111). 0 (0000, 0000). 1 (0000 0001). -128 (1000, 0000). 127 (0111 1111). 88 (0101 1000). -88 (1101 1000). -1 (1000 0001). 0 (0000 0000 ó 1000 0000). 1 (0000 0001). -127 (1111 1111). 127 (0111 1111). 88 (0101 1000). -88 (1010 0111). -1 (1111 1110). 0 (0000 0000 o 1111 1111). 1 (0000 0001). -127 (1000, 0000). 127 (0111 1111). Número de punto flotante Representación Un número de coma flotante (o número real) puede representar una muy grande (1.23times1088) o un valor muy pequeño (1.23times10-88). También podría representar gran número negativo (-1.23times1088) y muy pequeño número negativo (-1.23times1088), así como cero, como se ilustra: Un número de coma flotante se expresa normalmente en la notación científica, con una fracción (F ), y un exponente (e) de un cierto radix (r), en forma de FtimesrE. Los números decimales utilizan radix de 10 (Ftimes10E) mientras que los números binarios usan radix de 2 (Ftimes2E). Representación del número de punto flotante no es única. Por ejemplo, el número 55.66 se puede representar como 5.566times101. 0.5566times102. 0.05566times103. y así. La parte fraccionaria puede normalizarse. En la forma normalizada, sólo hay un único dígito diferente de cero antes de que el punto de base. respectivamente. P. ej. .

No comments:

Post a Comment