Simplemente no puedo entender los números de punto fijo y flotante debido a definiciones difíciles de leer sobre ellos en todo Google. Pero ninguno de los que he leído proporciona una explicación lo suficientemente simple de lo que realmente son. ¿Puedo obtener una definición simple con un ejemplo?
numbers
computer-science
representation
usuario942451
fuente
fuente
Respuestas:
Un número de coma fija tiene un número específico de bits (o dígitos) reservados para la parte entera (la parte a la izquierda del punto decimal) y un número específico de bits reservados para la parte fraccionaria (la parte a la derecha del decimal punto). No importa cuán grande o pequeño sea su número, siempre usará el mismo número de bits para cada porción. Por ejemplo, si su formato de punto fijo estuviera en decimal,
IIIII.FFFFF
entonces el número más grande que podría representar sería99999.99999
y el número más pequeño distinto de cero sería00000.00001
. Cada fragmento de código que procesa tales números debe tener un conocimiento integrado de dónde está el punto decimal.Un número de coma flotante no reserva un número específico de bits para la parte entera o fraccionaria. En su lugar, reserva un cierto número de bits para el número (llamado mantisa o significando ) y un cierto número de bits para decir dónde se encuentra dentro de ese número el lugar decimal (llamado exponente ). Por lo tanto, un número de punto flotante que ocupe 10 dígitos con 2 dígitos reservados para el exponente podría representar un valor más grande de
9.9999999e+50
y un valor distinto de cero más pequeño de0.0000001e-49
.fuente
-9.9999999e+50
.00000.00001
? Espero ver en su00000.00000
lugar. Además, ¿tiene alguna referencia que entre en más detalles sobre los números de coma fija?Un número de punto fijo solo significa que hay un número fijo de dígitos después del punto decimal. Un número de coma flotante permite un número variable de dígitos después del punto decimal.
Por ejemplo, si tiene una forma de almacenar números que requiere exactamente cuatro dígitos después del punto decimal, entonces es un punto fijo. Sin esa restricción es punto flotante.
A menudo, cuando se usa un punto fijo, el programador realmente usa un número entero y luego asume que algunos de los dígitos están más allá del punto decimal. Por ejemplo, es posible que desee mantener dos dígitos de precisión, por lo que un valor de 100 significa en realidad 1,00, 101 significa 1,01, 12345 significa 123,45, etc.
Los números de coma flotante tienen un propósito más general porque pueden representar números muy pequeños o muy grandes de la misma manera, pero existe una pequeña penalización por tener que tener almacenamiento adicional para el lugar donde va el decimal.
fuente
Según tengo entendido, la aritmética de punto fijo se realiza utilizando números enteros. donde la parte decimal se almacena en una cantidad fija de bits, o el número se multiplica por cuántos dígitos de precisión decimal se necesitan.
Por ejemplo, si el número
12.34
debe almacenarse y solo necesitamos dos dígitos de precisión después del punto decimal, el número se multiplica por100
para obtener1234
. Al realizar matemáticas en este número, usaríamos este conjunto de reglas. Agregar5620
o56.20
a este número produciría6854
en datos o68.54
.Si queremos calcular la parte decimal de un número de coma fija, usamos el operando módulo (%).
12.34 (pseudocódigo):
Los números de coma flotante son una historia completamente diferente en la programación. El estándar actual para números de coma flotante usa algo así como 23 bits para los datos del número, 8 bits para el exponente y 1 pero para el signo. Consulte este enlace de Wikipedia para obtener más información al respecto.
fuente
El término "punto fijo" se refiere a la forma correspondiente en que se representan los números, con un número fijo de dígitos después, y a veces antes, del punto decimal. Con la representación de punto flotante, la ubicación del punto decimal puede "flotar" en relación con los dígitos significativos del número. Por ejemplo, una representación de coma fija con una convención de colocación de coma decimal uniforme puede representar los números 123.45, 1234.56, 12345.67, etc., mientras que una representación de coma flotante podría representar además 1.234567, 123456.7, 0.00001234567, 1234567000000000, etc.
fuente
Tome el número 123.456789
El punto flotante le permite representar la mayoría de los números con gran precisión. Fixed es menos preciso, pero más sencillo para la computadora.
fuente