Попробуем получать представление вещественного числа в различных внутренних форматах типа IEEE754.
Для всех форматов (Half precision/Binary16; Single precision/Binary32; Double precision/Binary64; Quadruple precision/Binary 128) выделяют категории:
Знак всегда занимает 1 бит. Этот бит всегда имеет старшую позицию (первую слева, нумерация битов начинается справа и от 0)
Для храниния порядка (
экспоненты или
показателя степени) отводится:
- Half - 5 бит и со сдвигом равным 15 (25-1-1)
- Single - 8 бит и со сдвигом равным 127 (28-1-1)
- Double - 11 бит и со сдвигом равным 1023 (211-1-1)
- Quadruple - 15 бит и со сдвигом равным 16383 (215-1-1)
Порядок занимает старшие разряды после знака.
Порядок записывается со сдвигом, то есть чтобы получить актуально значение порядка нужно вычесть из него сдвиг. Сдвиг можно получить по формуле 2b−1-1, где b — число бит, отведенное на хранение порядка (в случае числа половинной точности b=5).
Для записи чисел используется нормализованная запись числа, при которой мантиса принадлежит полуинтервалу [1,10). При записи в двоичной системе нормализованная запись мантисы будет иметь вид 1,...... -