В сущности, для каждого из этих форматов у вас есть:
- 1 знаковый бит
- x битов экспоненты, дающих целое число E
- у битов мантиссы (или «значимости»), дающих дробное число М
Если бит знака равен 1, число отрицательное, иначе оно положительное.
Чтобы получить величину, вы берете (1 + M) * 2 ^ (E - k), где k (называемое «смещением экспоненты») зависит от формата.
Стоит отметить, что определенные комбинации знака, показателя степени и мантиссы являются «особыми» значениями, такими как 0, -inf
, +inf
и NaN
.
Подробности (значения x, y и k) см. В Википедии для одинарной точности (4 байта), двойной точности (8 байтов) и половины точность (2 байта).
Обратите внимание, что все они определены IEEE 754 , так что поиск в Google может дать вам полезные результаты. :)