У меня есть код, где я должен работать над Представление с плавающей точкой половинной точности
номера. Чтобы добиться этого, я создал свой собственный класс C ++ fp16, в котором все операторы (арифметические, логические, реляционные), связанные с этим типом, перегружены моими пользовательскими функциями, при этом используется число с плавающей точкой одинарной точности с плавающей точкой половинной точности число.
С плавающей запятой половинной точности = 1 знаковый бит, 5 битов степени, 10 значащих битов = 16 бит
с плавающей запятой одинарной точности = 1 знаковый бит, 8 битов экспоненты, 23 значащих и битов = 32 бита
Итак, что я делаю для преобразования числа с плавающей запятой одинарной точности в число с плавающей запятой половинной точности: -
Для значащих битов - я использую усечение, т. Е. Теряю 13 битов из 32 битов, чтобы получить 10 битов значащих и для поплавка половинной точности.
Что я должен сделать для обработки экспонентных битов. Как перейти от 8 экспонентных бит к 5 экспонентным битам?
Любой хороший материал для чтения поможет.