Как я понимаю, java будет хранить float в памяти как 32-битное целое число со следующими свойствами:
- Первый бит используется для определения знака
- Следующие 8 бит представляют экспоненту
- Последние 23 бита используются для хранения фракции
Это не оставляет лишних бит для трех особых случаев:
- NaN
- Положительная бесконечность
- Отрицательная бесконечность
Я могу предположить, что для сохранения одного из них можно использовать отрицательный 0.
Как они фактически представлены в памяти?