((b<<5) - b + a + 16) >> 5 так точнее
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
ы
20 декабря 2004 г. 19:15
В ответ на:
b=b+((a-b)>>5); и b=(b<<5+b+a)>>5; во втором случае точность выше? или я не прав?
отправлено fgggk 20 декабря 2004 г. 19:07
Составить ответ
|||
Конференция
|||
Архив
Ответы
ну или так b=b+((a - b + 16)>>5); все ж понятнее
—
ы
(20.12.2004 19:29,
пустое
)
и напосля)) b +=(a - b + 16) >> 5;
—
ы
(20.12.2004 19:31,
пустое
)
короче, при целочисленном делении (+)
—
ы
(20.12.2004 19:18, 133 байт)
Поэтому и >>5, а IAR C AVR, как делит, округляет или отбрасывает
—
fgggk
(20.12.2004 19:23,
пустое
)
ни разу не встречал чтобы при целых числах сам округлял...так что скорре всего и иар просто отбрасывает
—
ы
(20.12.2004 19:24,
пустое
)
ну и разрядность побольше чтобы overflow не було
—
ы
(20.12.2004 19:21,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru