Алгоритм такой:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Wukrly 30 августа 2005 г. 14:14
В ответ на: Поскажите как лучше unsigned long в десятичное 8-разрядное преобразовать. Скорость совершенно не критична, а вот объем очень критичен. На Сях. Сделал последовательное деление, но уж слишком громоздко. отправлено Igor 29 августа 2005 г. 16:51

Организуем большой сдвиговый регистр 5 байт на результат + 4 байта на исходное число.
Организуем цикл из 32 сдвигов. Перед каждым сдвигом каждый полубайт старших 5 байт проверяем - если число больше 4, прибавляем 3. Перенос в следующий полубайт (байт) отрабатываем как положено, т.е. добавляем 1. Полубайты анализируем начиная с младших полубайт в этих 5 байтах.
После 32 сдвигов в старших 5 байтах будет результат в 2-10 коде.
Этот алгоритм интерпретирует исходное число как целое - результат, тоже целое в 2-10 коде.
Если числа дробные, то алгоритм изменяется.
Поскольку не был указан тип контроллера, программу предлагать затруднительно.

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

Ответы



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

E-mail: info@telesys.ru