IEEE с плавающей точкой имеет показатель E
и мантиссу M
, каждый из которых представлен в виде двоичных чисел. Фактическое значение в основном
2^E * M
Базовая логарифмическая математика гласит:
log2(2^E * M)
= log2(2^E) + log2(M)
= E + log2(M)
Первая часть вашего кода разделяет E
и M. Строка с комментариями (1) вычисляет log2(M)
, используя полиномиальное приближение Последняя строка добавляет E
и результат приближения.