Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

операции сравнения


MANGOL ©   (2004-09-22 14:28:00) 

в прошлом посте (который почему-то тут же удалили :)) операция следующего вида
if ((w - x - a) + (y - a)) >= w div 2

возвращала true, хотя в левой чясти получался -1, а в правой +4. Оказалось, это из-за того, что в исходной функции параметры x,y,a,w были объявлены как BYTE, т.е. (наверно) в левой чясти вместо -1 получалось 255. После замены типа параметров на Integer всё стало работать корректно.

Так вот, у меня вопрос: если все эти переменные были бы различных типов, от byte до extended, как бы работала вся эта фигня? каков механизьм??

мож, кто знает? спасиб.


MANGOL   (2004-09-22 14:37:00) [1]

спасибо всем.
век живи - век учись :)


DiamondShark   (2004-09-22 14:34:00) [2]

Виражение вычисляется в минимальном типе, вмещающем все операнды.


Amoeba   (2004-09-22 14:33:00) [3]

Переменная W должна быть или целой знаковой, Y - или целой знаковой, или с плавающей точкой.


Суслик   (2004-09-22 14:29:00) [4]

ты тоже знаешь - смотри окно cpu (ctrl+alt+c).
имхо это главный источник информации на вопросы: "как это работает"


Наверх

Титульная страница Поиск, карта сайта Написать письмо