2011-01-26 6 views
9

¿Alguien sabe de una biblioteca de JavaScript que implementa con precisión la especificación IEEE 754 para valores de coma flotante de 32 bits? Pregunto porque estoy tratando de escribir un compilador cruzado en JavaScript, y dado que el idioma fuente tiene requisitos estrictos de que los valores de punto flotante se adhieren a IEEE 754, el código JavaScript generado también debe hacerlo. Esto significa que debo ser capaz de obtener exactamente los valores correctos de IEEE 754 para la suma, la resta, la multiplicación y la división de los flotadores de 32 bits. Desafortunadamente, el tipo de Número de JavaScript estándar es un doble de 64 bits, que dará resultados diferentes a los que estoy esperando. El proyecto realmente tiene que estar en JavaScript, y este es el único gran obstáculo que aún tengo que superar.Implementación de flotantes de 32 bits o longs de 64 bits en JavaScript?

También estoy teniendo este problema con longitudes de 64 bits.

+1

Estás haciendo un ¿qué?!? (impresionado) Un compilador de qué, exactamente? – amphetamachine

+0

@ amphetamachine- Si todo va bien (¡cruza los dedos!) Una implementación de la JVM que se ejecuta en JavaScript. Es para enseñar intro CS en línea. No esperaba que esto fuera el cuello de botella, descubrí cómo hacer el enhebrado y todo antes de que esto me dejara perplejo. :-) – templatetypedef

+0

Supongo que ya ha invertido un gran esfuerzo en esto, por lo que creo que en realidad podría valer la pena intentar la implementación usted mismo. Los detalles se dejan como un ejercicio para el lector. :) – nss

Respuesta

8

El Closure library tiene una implementación larga de 64 bits, al menos.

+0

@ gsnedders- ¡Esto es hermoso! Muchas gracias por el enlace. Me he quedado sin votos hoy, pero me aseguraré de darte +1 tan pronto como llegue el día siguiente. – templatetypedef

Cuestiones relacionadas