|
получить экспоненту это просто посчитать число старших бит, равных нулю. Нормализовать - сдвинуть влево на это число. Если числа без знака. Из экспоненты легко одним вычитанием её из максимально возможного числа бит за вычетом единицы получается целая часть логарифма. Вот пример - допустим 8 битные числа.
имеем 0x15 -- 00010101
три старших бита в нуле, значит целая часть логарифма есть (8-1-3)=4 (формат числа действительно 2^4 + что-то). Теперь на это 4 влево сдвигаем. получаем 01010000. И собираем число из экспоненты и мантиссы - три бита выделяем под целую часть. Получаем 100.01010000. Отсекаем лишнее до убирания в восемь бит, получаем 100.01010 в формате 8.5 (фиксированная точка, всего восемь бит, из них 5 дробных).
Что есть 4.3125. Честный логарифм 4.3923. Если такая погрешность устроит, в путь. Если не устроит - старшие биты дробной части перекодируйте по таблице.
E-mail: info@telesys.ru