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

 
 
> Проблемы c IAR AVR!
Yura_Kyiv
сообщение Nov 21 2006, 11:31
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 7-11-06
Пользователь №: 22 049



Имеется IAR 4.20. Выполняю небольшую программу и угадайте, что я получаю на выходе??? 32640+4294934528!!

unsigned long int L1=0,L2=0;
unsigned char C1;

int main( void )
{
C1=0x80;
L1=C1*255;
L2=C1*256;
return (L1+L2);
}

В Borland C++, Visual Studio результат правильный!
Только не надо говорить, что надо писать так или C1 должно быть Long Int!
L2=(long int)C1*256;

Как правильно настроить IAR????
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Nov 21 2006, 13:58
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Именно так L2=(long int)C1*256;
можно еще L2=(long int)256*C1;
или L2=0х00000100*C1;
А в Борланде и VC вычисления всегда в int идут, причем int там 4 байта.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Nov 21 2006, 14:22
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(GDI @ Nov 21 2006, 13:58) *
Именно так L2=(long int)C1*256;
можно еще L2=(long int)256*C1;
или L2=0х00000100*C1;
А в Борланде и VC вычисления всегда в int идут, причем int там 4 байта.

Все правильно, только можно чуть короче L2 = C1 * 256L;
А в Borland и в VC действительно тип int эквивалентен типу long. Тип int изначально был аппаратно-зависим, т.е. разрядность данных этого типа выбиралась такой, чтобы операции с данными этого типа выполнялись наиболее естественным, для выбранного процессора, образом.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 15:15
Рейтинг@Mail.ru


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