переполнение все равно возможно, так как результат 48-битный.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Пушистик
29 мая 2004 г. 19:24
В ответ на:
Все, опять туплю. - Как лучше выполнить {c= (int32 a * int32 b) >> 16;} чтобы исключить возможные переполнения при умножении?
отправлено гоша 29 мая 2004 г. 18:55
Может long long c? Не везде он есть правда
Составить ответ
|||
Конференция
|||
Архив
Ответы
Если серией умножений 16*16 это нормально/правильно??
—
гоша
(29.05.2004 19:39, 287 байт)
правильно, если уверены, что a1 * b1 << 16 будет меньше равно 32 битам. На С пишите? Тогда библиотека сама должна сделать также, то есть верно :)
—
Пушистик
(29.05.2004 20:21,
пустое
)
Библиотеки работы с фикс точкой для 24xx нет. Т.е. есть только для 28xx Написать несложно. На C писать - смысла нет...
—
гоша
(29.05.2004 20:39,
пустое
,
ссылка
)
Т.е. исходники только некоторых ф-ий для 24хх приведены, sin/cos/tan/log/sqrt ...
—
гоша
(29.05.2004 20:44, 5062 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru