А я и не говорю про числа с плавающей точкой, как и про дебри математики (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 17 июня 2005 г. 14:10
В ответ на: К сожалению в математике я не силен :( Надо было учить матчасть! Где можно почитать про этот медод? Чтобы на одном языке с вами разговаривать. Можно ли без чисел с плавующей запятой обойтись? отправлено =NIK= 17 июня 2005 г. 13:56

получить экспоненту это просто посчитать число старших бит, равных нулю. Нормализовать - сдвинуть влево на это число. Если числа без знака. Из экспоненты легко одним вычитанием её из максимально возможного числа бит за вычетом единицы получается целая часть логарифма. Вот пример - допустим 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