Ответ: (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено 20 августа 2003 г. 13:24
В ответ на: Ответ: А как нормализовать отправлено Alexandr99 20 августа 2003 г. 11:46

Алгоритм примерно такой. берем простой случай - число +-XX.YY - XX и YY - это десятичные цифры. требуемая точность - 32 бита мантиссы.
1) XX преобразуем в один байт, YY - в другой.
2) YY преобразуем к формату Q.31. Для этого его надо умножить (2^32)/100. То есть сделать 40-битным, собрав из полученного байта и 32-х нулей, затем поделить на 100. Результат по определению не превысит 32-х бит.
4) собираем новое 40-битное число, пристыковав целочисленный байт слева к полученным после деления 32-м битам.
5) сдвигаем влево все эти 40 бит до тех пор, пока не "вылезет" старший бит, равный единице. При этом на каждом шаге уменьшаем экспоненту на 1.
6) корректируем экспоненту (сколько-то там к ней прибавить надо, константу), что-бы результирующее число имело правильный порядок. Это почитать надо IEEE-754, не помню точно, за что там нулевой порядок принят.

Вот и все. Кажется так.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru