b'\n_START_ARTICLE_\nComa flotante\n_START_PARAGRAPH_\nLa representaci\xc3\xb3n de punto flotante (en ingl\xc3\xa9s floating point) es una forma de notaci\xc3\xb3n cient\xc3\xadfica usada en los computadores con la cual se pueden representar n\xc3\xbameros reales extremadamente grandes y peque\xc3\xb1os de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritm\xc3\xa9ticas. El est\xc3\xa1ndar actual para la representaci\xc3\xb3n en coma flotante es el IEEE 754.\n_START_SECTION_\nNotaci\xc3\xb3n cient\xc3\xadfica\n_START_PARAGRAPH_\nComo la representaci\xc3\xb3n en coma flotante es casi id\xc3\xa9ntica a la notaci\xc3\xb3n cient\xc3\xadfica tradicional, con algunos a\xc3\xb1adidos y algunas diferencias, primero se describir\xc3\xa1 la notaci\xc3\xb3n cient\xc3\xadfica para entender c\xc3\xb3mo funciona, y luego se describir\xc3\xa1 la representaci\xc3\xb3n de coma flotante y las diferencias.\n_START_SECTION_\nCoeficiente\n_START_PARAGRAPH_\nUn signo en el coeficiente indica si el n\xc3\xbamero real es positivo o negativo._NEWLINE_El coeficiente tiene una cantidad determinada de d\xc3\xadgitos significativos, los cuales indican la precisi\xc3\xb3n del n\xc3\xbamero representado, cuantos m\xc3\xa1s d\xc3\xadgitos tenga el coeficiente, m\xc3\xa1s precisa es la representaci\xc3\xb3n. Por ejemplo, \xcf\x80 lo podemos representar en notaci\xc3\xb3n cient\xc3\xadfica, con 3 cifras significativas, 3,14 x 10\xe2\x81\xb0, o con 12 cifras significativas, 3,14159265359 x 10\xe2\x81\xb0, teniendo en la segunda representaci\xc3\xb3n mucha m\xc3\xa1s precisi\xc3\xb3n que la primera.\n_START_SECTION_\nSistema binario\n_START_PARAGRAPH_\nUn valor real se puede extender con una cantidad arbitraria de d\xc3\xadgitos. La coma flotante permite representar solo una cantidad limitada de d\xc3\xadgitos de un n\xc3\xbamero real, solo se trabajar\xc3\xa1 con los d\xc3\xadgitos m\xc3\xa1s significativos, (los de mayor peso) del n\xc3\xbamero real, de tal manera que un n\xc3\xbamero real generalmente no se podr\xc3\xa1 representar con total precisi\xc3\xb3n sino como una aproximaci\xc3\xb3n que depender\xc3\xa1 de la cantidad de d\xc3\xadgitos significativos que tenga la representaci\xc3\xb3n en coma flotante con que se est\xc3\xa1 trabajando. La limitaci\xc3\xb3n se halla cuando existen d\xc3\xadgitos de peso menor al de los d\xc3\xadgitos de la parte significativa. En dicho caso estos suelen ser redondeados, y si son muy peque\xc3\xb1os son truncados. Sin embargo, y seg\xc3\xban el uso, la relevancia de esos datos puede ser despreciable, raz\xc3\xb3n por la cual el m\xc3\xa9todo es interesante pese a ser una potencial fuente de error._NEWLINE_En la representaci\xc3\xb3n binaria de coma flotante, el bit de mayor peso define el valor del signo, 0 para positivo, 1 para negativo. Le siguen una serie de bits que definen el exponente. El resto de bits son la parte significativa._NEWLINE_Debido a que la parte significativa est\xc3\xa1 generalmente normalizada, en estos casos, el bit m\xc3\xa1s significativo de la parte significativa siempre es 1, as\xc3\xad que no se representa cuando se almacena sino que es asumido impl\xc3\xadcitamente. Para poder realizar los c\xc3\xa1lculos ese bit impl\xc3\xadcito se hace expl\xc3\xadcito antes de operar con el n\xc3\xbamero en coma flotante. Hay otros casos donde el bit m\xc3\xa1s significativo no es un 1, como con la representaci\xc3\xb3n del n\xc3\xbamero cero, o cuando el n\xc3\xbamero es muy peque\xc3\xb1o en magnitud y rebasa la capacidad del exponente, en cuyo caso los d\xc3\xadgitos significativos se representan de una manera denormalizada para as\xc3\xad no perder la precisi\xc3\xb3n de un solo golpe sino progresivamente. En estos casos, el bit m\xc3\xa1s significativo es cero y el n\xc3\xbamero va perdiendo precisi\xc3\xb3n poco a poco (mientras que al realizar c\xc3\xa1lculos este se haga m\xc3\xa1s peque\xc3\xb1o en magnitud) hasta que al final se convierte en cero.\n_START_SECTION_\nEjemplo\n_START_PARAGRAPH_\nEmplearemos varios ejemplos para describir la notaci\xc3\xb3n de coma flotante. Abajo tenemos 3 n\xc3\xbameros en una representaci\xc3\xb3n de coma flotante de 16 bits. El bit de la izquierda es el signo, luego hay 6 bits para el exponente, seguidos de 9 bits para la parte significativa:\n_START_SECTION_\nSigno\n_START_PARAGRAPH_\nEl signo es expresado por el bit de la izquierda, con 0 indicando que el n\xc3\xbamero es positivo y 1 indicando que el n\xc3\xbamero es negativo. En los ejemplos de arriba, el primer n\xc3\xbamero es negativo y los dos \xc3\xbaltimos son positivos.\n_START_SECTION_\nExponente\n_START_PARAGRAPH_\nEl exponente indica cu\xc3\xa1nto se debe desplazar hacia la derecha o hacia la izquierda la coma binaria de la parte significativa. En este caso, el exponente ocupa 6 bits capaces de representar 64 valores diferentes, es decir, es un exponente binario (de base 2) que va desde -31 a +32, representando potencias de 2 entre 2\xe2\x81\xbb\xc2\xb3\xc2\xb9 y 2\xe2\x81\xba\xc2\xb3\xc2\xb2, indicando que la coma binaria se puede desplazar hasta 31 d\xc3\xadgitos binarios hacia la izquierda (un n\xc3\xbamero muy cercano a cero), y hasta 32 d\xc3\xadgitos binarios hacia la derecha (un n\xc3\xbamero muy grande)._NEWLINE_Pero el exponente no se almacena como un n\xc3\xbamero binario con signo (desde -31 hasta +32) sino como un entero positivo equivalente que va entre 0 y 63. Para ello, al exponente se le debe sumar un desplazamiento (bias), que en este caso de exponente de 6 bits (64 valores), es 31 (31 es la mitad de los 64 valores que se pueden representar, menos 1), y al final, el rango del exponente de -31 a +32 queda representado internamente como un n\xc3\xbamero entre 0 y 63, donde los n\xc3\xbameros entre 31 y 63 representan los exponentes entre 0 y 32, y los n\xc3\xbameros entre 0 y 30 representan los exponentes entre -31 y -1 respectivamente:_NEWLINE_-31              0               32 <-- Exponente binario real_NEWLINE_ +-------+-------+-------+-------+_NEWLINE_ 0               31              63 <-- Representaci\xc3\xb3n en coma flotante_NEWLINE_                                        del exponente de 6 bits_NEWLINE_                                        (Es el exponente binario m\xc3\xa1s un bits de 31)\n_START_SECTION_\nParte significativa\n_START_PARAGRAPH_\nLa parte significativa, en este caso, est\xc3\xa1 formada por 10 d\xc3\xadgitos binarios significativos, de los cuales tenemos 9 d\xc3\xadgitos expl\xc3\xadcitos m\xc3\xa1s 1 impl\xc3\xadcito que no se almacena._NEWLINE_Esta parte significativa generalmente est\xc3\xa1 normalizada y tendr\xc3\xa1 siempre un 1 como el bit m\xc3\xa1s significativo. Debido a que, salvo ciertas excepciones, el bit m\xc3\xa1s significativo del significante siempre es 1, para ahorrar espacio y para aumentar la precisi\xc3\xb3n en un bit, este bit no se almacena, y por ello se denomina bit oculto o impl\xc3\xadcito, sin embargo, antes de realizar los c\xc3\xa1lculos este bit impl\xc3\xadcito debe convertirse en un bit expl\xc3\xadcito.\n_START_SECTION_\nComparaci\xc3\xb3n con la coma fija\n_START_PARAGRAPH_\nPara un tama\xc3\xb1o determinado de bytes, la notaci\xc3\xb3n en coma flotante puede ser m\xc3\xa1s lenta de procesar y es menos precisa que la notaci\xc3\xb3n en coma fija, ya que adem\xc3\xa1s de almacenar el n\xc3\xbamero (parte significativa), tambi\xc3\xa9n debe almacenarse el exponente, pero permite un mayor rango en los n\xc3\xbameros que se pueden representar.\n_START_SECTION_\nCoprocesador num\xc3\xa9rico y bibliotecas de coma flotante\n_START_PARAGRAPH_\nDebido a que las operaciones aritm\xc3\xa9ticas que se realizan con n\xc3\xbameros en coma flotante son complejas de realizar, muchos sistemas destinan un procesador especial para la realizaci\xc3\xb3n espec\xc3\xadfica de este tipo de operaciones, denominado unidad de coma flotante o tienen incorporados componentes especializados. En los casos donde no exista esta facilidad, o que el hardware de coma flotante no pueda realizar determinadas operaciones, se utilizan bibliotecas de software para realizar los c\xc3\xa1lculos.'