Puede iterar sobre todos los valores long
posibles y luego usar Double.longBitsToDouble()
para obtener un double
para cada posible combinación de 64 bits.
Sin embargo, tenga en cuenta que esto llevará un tiempo. Si necesita 100 nanosegundos de procesamiento para cada valor de double
, tomará aproximadamente (no todas las combinaciones de bits son números dobles diferentes, por ejemplo NaN) 2^64 * 1e-7/86400/365 años que es más que 16e11/86400/365 = 50700 años en una sola CPU. A menos que tenga un centro de datos para hacer el cálculo, es una mejor idea revisar el rango posible de todos los valores de entrada que muestren el intervalo en un número configurable de puntos.
Hazaña análoga para float
sigue siendo difícil pero realizable: suponiendo que necesita 10 milisegundos de procesamiento para cada valor de entrada necesita aproximadamente 2^32 * 1e-2/86400 = 497.1 días en una sola CPU. En este caso, usaría Float.intBitsToFloat()
.
Bueno, desde ya se puede repetir todas las posibles int, simplemente repetir un conjunto que consta de todas las posibles/cada posible int int. – asawyer
Por supuesto, usted se da cuenta de que hay demasiados dobles (o anhelos en el caso de los enteros) para probarlos todos. –
¿Dónde necesita exactamente implementar tal concepto? – Lion