![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
операции сравнения
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).
имхо это главный источник информации на вопросы: "как это работает"