реклама на сайте
подробности

 
 
> Снова по преобразованию типов )
TeddyIn
сообщение Jan 7 2009, 14:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 4-01-09
Из: Владивосток
Пользователь №: 42 911



к примеру

Код
unsigned int f, a,b,c;

f = ((a+b)*c*a)/6556


в итоге нужно, чтобы f осталась unsigned int (известно, результат влазит в размерность unsigned int ) но по ходу вычислений образуются значения, превышающие этот тип, поэтому

Код
unsigned int f, a,b,c;

f = (( (unsigned long int)a+(unsigned long int)b)*(unsigned long int)c*(unsigned long int)a)/6556


А f же все равно должна получиться unsigned int. - Правильно ли я понимаю, и увеличится ли объем программной памяти, если использовать описанное явное приведение по сравнению с первым вариантом?


--------------------
висячий монтаж -> лак - > ЦЛ - > ЛУТ - > ФР - > ?
оу -> стабилизаторы - > драйверы -> микроконтроллеры - > ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TeddyIn
сообщение Jan 7 2009, 14:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 4-01-09
Из: Владивосток
Пользователь №: 42 911



Цитата
но достаточно так:

Цитата
Кстати, в последнем выражении количество явных приведений типа можно сократить.

Спасибо, меньше писанины )
архитектура с51, компилятор Keil.
Мдааа, а я то думал, что раз в книжке "програм-е МК на Си" написано, что char = 8bit, int = 16bit, long - 32... то так оно и есть, оказывается нужно еще и аритектуру учитывать


--------------------
висячий монтаж -> лак - > ЦЛ - > ЛУТ - > ФР - > ?
оу -> стабилизаторы - > драйверы -> микроконтроллеры - > ?
Go to the top of the page
 
+Quote Post
Kompot
сообщение Jan 7 2009, 15:27
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 10-06-08
Из: Хочу в пампасы...
Пользователь №: 38 192



Цитата(TeddyIn @ Jan 7 2009, 18:54) *
Спасибо, меньше писанины )
архитектура с51, компилятор Keil.
Мдааа, а я то думал, что раз в книжке "програм-е МК на Си" написано, что char = 8bit, int = 16bit, long - 32... то так оно и есть, оказывается нужно еще и аритектуру учитывать



Доступнее всего об этом написано у Кернигана и Ричи. "Язык программирования Си". Настоятельно советую иметь под рукой.

А размерность типов зависит от архитектуры лишь косвенно.
Абсолютно размерность типов задает лишь конкретный компилятор. Вот в его хелпе и надо смотреть.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 7 2009, 15:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Kompot @ Jan 7 2009, 20:27) *
Абсолютно размерность типов задает лишь конкретный компилятор. Вот в его хелпе и надо смотреть.
Точнее в стандартном заголовочном файле limits.h
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 00:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016