А так: unsigned int c; float a,b; c=a/b; ? Или так нельзя ?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
vinogradov_alexei
05 февраля 2005 г. 18:24
В ответ на:
а просто типы привести ? float a,b; int c; с = (int) (a/b);
отправлено DASM 05 февраля 2005 г. 18:13
Составить ответ
|||
Конференция
|||
Архив
Ответы
Можно, но варнинг получите о потере в точности
—
SM
(05.02.2005 19:01,
пустое
)
Т.е., как понял, в обоих случах происх. одно и то же - компилтор выкидывает дробную часть ?
—
vinogradov_alexei
(05.02.2005 19:21,
пустое
)
Да. Дробную часть выкинет. А при переполнении поведение не стандартизовано.
—
SM
(05.02.2005 19:26,
пустое
)
Понимаю, но у меня такая специфика данных, что переполнений не будет ...
—
vinogradov_alexei
(05.02.2005 19:30,
пустое
)
по любому правильно и красиво будет d=(type_needed)(a/b)
—
SM
(05.02.2005 19:31,
пустое
)
А что такое "type needed" ?
—
vinogradov_alexei
(05.02.2005 19:33,
пустое
)
это то что надо :). например надо результат integer - пишешь в скобках (int)
—
Max_Fly
(05.02.2005 19:35,
пустое
)
Ну там char, int, long - что надо в конкретном случае
—
SM
(05.02.2005 19:35,
пустое
)
Ясно :)
—
vinogradov_alexei
(05.02.2005 19:39,
пустое
)
подробностей уже не вспомню - но был у меня прецедент (+)
—
Max_Fly
(05.02.2005 19:24, 221 байт)
Э-э по указателю это другой вопрос.
—
SM
(05.02.2005 19:27,
пустое
)
так не всегда можно. GNU С будет ругаться и возможно не захочет компилировать. типы приводить желательно явно.
—
Max_Fly
(05.02.2005 18:38,
пустое
)
что за отклонение ? автоматические правила у него что-ли не работают ?
—
DASM
(05.02.2005 18:46,
пустое
)
автоматические правила действуют если при этом не теряется точность. (+)
—
Max_Fly
(05.02.2005 19:10, 78 байт)
Но не компилировать оно не имеет права (+)
—
SM
(05.02.2005 19:12, 51 байт)
угу :) (+)
—
Max_Fly
(05.02.2005 19:26, 64 байт)
Вышеуказанный пример не содержит несовмести типов.
—
SM
(05.02.2005 19:28,
пустое
)
пожалуй да - ты прав. это я уже переработал :).
—
Max_Fly
(05.02.2005 19:30,
пустое
)
можно, но менее наглядно на начальном этапе :-)))
—
DASM
(05.02.2005 18:29,
пустое
)
OK, спасибо ...
—
vinogradov_alexei
(05.02.2005 18:31,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru