Как правильно пользоваться преобразованием типов данных в Си
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено radioman 25 ноября 2004 г. 08:16

Вопрос вроде простой есть:

int A=500 ;
int B=5000 ;
int C=800 ;
long D=1000000 ;

int Resalt ;

вычислить

Resalt=A*B*C/(D-C) ;

Если вычислять "в лоб" то A*B дает результат INT а не LONG и получается ерунда

Сделал

Resalt=(int)((Long)A*(Long)B*(Long)C)/(D-Long(C)) ;

Работает но некрасивая запись. Да еще если результат A*B*C выходит за 80000000h то результат естественно получается оторицательный (ну это ладно пришлось преобразовывать (unsugned long)A...)

Компилятор Microchip C18.

Как писать ГРАМОТНО?


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru