3 ms·
IEEE double-precision floating-point numbers can exactly represent 53-bit integers and hence they are suitable for most integer related operations (ignoring bit
by Kranar 5y ago
IEEE double-precision floating-point numbers can exactly represent 53-bit integers and hence they are suitable for most integer related operations (ignoring bitwise operations).
For bitwise operations, JavaScript will first convert the number to a 32-bit two's complement signed integer.
- dahfizz 5y agoI guess the question is really whether JS takes advantage of these facts. Will JS, at runtime, realize that X is an int and optimize 2 * X into a bit shift operation? Will JS recognize that Y and Z are perfectly represented integers stored in floats and so use integer instructions when adding Y + Z? Would such a thing even save time with all the casting back and forth to fp?