Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Ответ:
Отправлено
diwil
11 июля 2008 г. 13:18
В ответ на:
Помогите избавиться от плавающей точки (+)
отправлено Dikoy 11 июля 2008 г. 12:56
a - исходное значение
b - коэффициент (действительное число 0.0 .. 4.0)
Сначала b умножаем на 0x1fff - получаем целое число
далее результат будет получен так:
c = ((long)a*b + (1<<12)) >> 13;
Составить ответ
|
Вернуться на конференцию
Ответы
А какая точность будет у этого вычисления? Три знака после запятой (как в случае флоата) достигнутся?
-
Dikoy
(11.07.2008 14:45:37
192.168.3.72,194.186.243.194
,
пустое
)
То есть я должен взять целую часть от умножения b? То есть b = (int)(b*0x1fff); ?
-
Dikoy
(11.07.2008 13:28:44
192.168.3.72,194.186.243.194
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 567:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru