As I understand it java will store a float in memory as a 32 bit integer with the following properties:
- The first bit is used to determine the sign
- The next 8 bits represent the exponent
- The final 23 bits are used to store the fraction
This leaves no spare bits for the three special cases:
- NaN
- Positive Infinity
- Negative Infinity
I can guess that negative 0 could be used to store one of these.
How are these actually represented in memory?