Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Ответ:
Отправлено
Artem-1.6E-19
11 июня 2008 г. 12:22
В ответ на:
Как привести операцию умножения на число с плавающей точкой к целочисленному (+)
отправлено Aleksey_n 11 июня 2008 г. 12:13
unsigned int val1;
unsigned int val2 = val1 * (unsigned int)(12.356793*0xFFFF);
float val3 = (float)val1 /(float)(0xFFFF);
Если инт у вас 32 бита, то будет работать с точностью 1/0xFFFF * 100 это в процентах. Максимальное val1 это 0xFFFF/12.356793
Удобно это всё моделять в матлабе.
Составить ответ
|
Вернуться на конференцию
Ответы
Алгоритм приведения "плавающих" чисел к отношению двух дробей приведён в книге Кнута "Конкретная математика" на стр 141.
—
Крок
(11.06.2008 13:00:0
62.118.59.14
, 80 байт)
писиб, будем искать)
—
Aleksey_n
(11.06.2008 13:26:21
207.226.45.250
,
пустое
)
И что искать? Разложение в цепную дробь (+):
—
argus98
(11.06.2008 13:51:2
81.22.205.230
, 383 байт)
Это чересчур кучеряво. У Кнута поизящней :-)
—
Крок
(11.06.2008 15:24:48
91.76.122.151
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 38:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru