[an error occurred while processing this directive]
А зачем от нее избавляться - она же будет целочисленной, и выполняться будет только один раз при новой калибровке
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено =AVR= 07 июня 2006 г. 17:04
В ответ на: Ну на "ты" так на "ты". Расчет всобщем-то понятен. но как все-таки избавится от операции деления? отправлено vanessa 07 июня 2006 г. 16:37

Вот опять пример - как найти числитель (можешь это называть "приведением к знаменателю 2^16", хотя это будет не шибко корректно):

Нужно посчитать k, представленный в виде int, и пропорциональный требуемому float. Приводим k к виду long - K=k << 16 (т.е. умножаем на 65536). Целочисленно делим полученный long K на требуемый выходной масштаб - (5170*65536)\7000=48403 (частное), и 120 в остатке (остаток - для иллюстрации, он не нужен, да и оператор "\" его не дает). Дальше все расписано в предыдущем посте.

Итог - не применяется плавучка, да и деление long\long применяется только при редкой калибровке, а не в realtime-вычислениях


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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru