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

 
 
> Type conversions в CodeVision, unsigned char->float
Gogan
сообщение Dec 28 2007, 13:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 25-10-07
Из: Киев
Пользователь №: 31 728



Есть вот такой проргамный код для АВР(например):

unsigned char a = 100;
float b = 20;

далее в программе

if( b < -a ){...}

так вот оказывается, в таком случаее условие выполняется.
Если кастовать вот так :

if( b < - (int) a ) {...}

тогда все ок. Объясните почему? Я не могу понять, что с чем сравнивается, если не кастовать, и почему так происходит?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WHALE
сообщение Dec 29 2007, 07:15
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Дык я про это и пишу.В вашем примере это несомненно,а у аффтара составное выражение,и в этом
случае и автоматическое приведение будет только для операции сдвига.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
sergik_vrn
сообщение Dec 29 2007, 08:21
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491



Цитата(WHALE @ Dec 29 2007, 10:15) *
[..]
а у аффтара составное выражение,и в этом
случае и автоматическое приведение будет только для операции сдвига.

почему Вы так думаете? вообще-то, приведение должно производиться до любых вычислений, в этом его смысел. то, что автор перепутал приоритет операций, на это не влияет. то есть, последовательность в его случае такая: promote <val1> - promote <val2> - add - shift - truncate - assign
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Gogan   Type conversions в CodeVision   Dec 28 2007, 13:21
- - Kuzmi4   2 Gogan - последний вариант - как бы правильней - ...   Dec 28 2007, 13:25
- - sergik_vrn   Цитата(Gogan @ Dec 28 2007, 16:21) Есть в...   Dec 28 2007, 14:33
|- - defunct   Цитата(sergik_vrn @ Dec 28 2007, 17:33) т...   Dec 28 2007, 15:15
|- - sergik_vrn   Цитата(defunct @ Dec 28 2007, 18:15) Логи...   Dec 29 2007, 06:54
- - Gogan   Огромное спасибо за ответы! Теперь уяснил. Сег...   Dec 28 2007, 18:33
- - ReAl   Цитата(Gogan @ Dec 28 2007, 15:21) unsign...   Dec 28 2007, 20:57
|- - Gogan   Цитата(ReAl @ Dec 28 2007, 22:57) А то, ч...   Dec 29 2007, 06:25
|- - Палыч   Цитата(ReAl @ Dec 28 2007, 23:57) Приведе...   Dec 29 2007, 08:38
|- - ReAl   Цитата(Палыч @ Dec 29 2007, 10:38) ISO989...   Dec 29 2007, 09:15
- - WHALE   Выбрось каку!!! Обьясните тупому,плиз...   Dec 29 2007, 06:25
- - Qwertty   Имхо правильный вариант: eeprom unsigned int edata...   Dec 29 2007, 06:47
- - WHALE   То есть если у меня сложная составная операция с д...   Dec 29 2007, 08:29
- - sergik_vrn   Цитата(WHALE @ Dec 29 2007, 11:29) То ест...   Dec 29 2007, 08:39


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:32
Рейтинг@Mail.ru


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