sale novedades mods lanzamiento fecha descargar cuando crafteos floating-point int

floating point - novedades - Float e Int ¿Ambos 4 Bytes? ¿Cómo?



minecraft 1.13 novedades (6)

El estándar para coma flotante según los estándares requiere una base = 2 en lugar de base = 10 y 24 dígitos (precisión). Como no es la base 10, el formato base 2 es capaz de representar solo un conjunto definido de números reales (que es la razón inherente de error para representar números reales). También significa, como pensaste antes, que el flotante no representa muchos más números en comparación con int.

Int es 4 bytes con un rango de + - 2 ^ 31 Float es 4 bytes con un rango de + - 1.2E (+ - 38)

El flotador abarca tantos puntos más en la línea real y, sin embargo, es igual al tamaño de int. ¿Es tan impresionante la representación Sign-Exponent-Fraction de float (o el complemento de 2 de Int tan patético) que surge esta disparidad de tamaño? ¿Me estoy perdiendo de algo?

Me resulta muy sorprendente que algo que representa (virtualmente) toda la línea real sea del mismo tamaño que el que representa los enteros.


Me resulta muy sorprendente que algo que representa (virtualmente) toda la línea real sea del mismo tamaño que el que representa los enteros.

Quizás esto sea menos sorprendente una vez que te des cuenta de que hay muchos enteros que un int 32 bits puede representar exactamente, y un float 32 bits no.

Un float puede representar menos números distintos que un int , pero están distribuidos en un rango más amplio.

También vale la pena señalar que el espaciado entre floats consecutivos se hace más amplio a medida que uno se aleja de cero, mientras que permanece constante para ints consecutivas.


Ambos tipos representan la misma cantidad de puntos en la línea real, están espaciados de manera diferente. La diferencia entre el float más alto y el segundo más alto es ca. 256!


Creo que el punto importante aquí es que int es exacto mientras que el flotador puede redondearse. Una parte de los datos en un flotador describe la ubicación del decimal, mientras que otra parte determina el valor. Entonces, si bien puede mostrar 1.2E38, solo los primeros dígitos pueden ser correctos y el resto puede llenarse con 0.

De: http://en.wikipedia.org/wiki/Floating_point

"con siete dígitos decimales podría además representar 1.234567, 123456.7, 0.00001234567, 1234567000000000, etc."

Depende de cómo el sistema particular implemente flota.



Bueno, aquí hay una explicación rápida:

Un int y float generalmente ocupan "una palabra" en la memoria. Hoy, con el cambio a sistemas de 64 bits, esto puede significar que su palabra es de 64 bits u 8 bytes, lo que permite la representación de un gran lapso de números. O bien, podría ser un sistema de 32 bits, lo que significa que cada palabra en la memoria ocupa 4 bytes. Por lo general, se puede acceder a la memoria palabra por palabra.

La diferencia entre int y float no es su espacio físico en la memoria, sino en la forma en que la ALU (unidad de lógica aritmética) se comporta con el número. Un int representa su número directamente correspondiente en binario (bueno, casi - usa la notación de complemento de dos ). Por otro lado, un float está codificado (generalmente en formato estándar IEEE 754) para representar un número en forma exponencial (es decir, 2.99 * 10 ^ 6 está en forma exponencial).

Su malentendido, creo que se basa en la idea errónea de que un punto flotante puede representar más información. Si bien los float pueden representar números de mayor magnitud, no pueden representarlos con tanta precisión, ya que tienen que explicar la codificación del exponente. El exponente en sí podría ser un número bastante grande. Entonces la cantidad de dígitos significativos que obtienes de un número de coma flotante es menor (lo que significa que se representa menos información) y mientras que int s representa un rango de números enteros, la magnitud de los números que representan es mucho menor.