Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Элементарный вопрос по булевской функции   Найти похожие ветки 

 
Eugene_T   (2005-10-21 13:56) [0]

FruiteType - переменная
FRUITE_APPLE = 2

Объясните суть работы следующей функции, что будет возвращать функция при каких значениях и почему.

function GetIsApple: Boolean;
begin
 Result := FruiteType and FRUITE_APPLE = FRUITE_APPLE;
end;


 
Jeer ©   (2005-10-21 14:00) [1]

Начни со старшинства операций и пройдись по ним в нужном порядке.
Кроме того, не сказано, что за тип переменной FruiteType - может string ?


 
Digitman ©   (2005-10-21 14:00) [2]


> при каких значениях


в дан.случае - по барабану при каких.


 
umbra ©   (2005-10-21 14:09) [3]


> function GetIsApple: Boolean


Эта функция попределяет, имеет ли переменная FruiteType значение FRUITE_APPLE. Может, так понятней?

Result := (FruiteType and FRUITE_APPLE) = FRUITE_APPLE;


 
Eugene_T   (2005-10-21 14:10) [4]

FruiteType: Byte


 
Eugene_T   (2005-10-21 14:15) [5]

2Umbra

Почему тогда не сделать
Result := FruiteType = FRUITE_APPLE ?


 
Jeer ©   (2005-10-21 14:24) [6]

Eugene_T   (21.10.05 14:15) [5]

Это ты у нас спрашиваешь ?


 
clickmaker ©   (2005-10-21 14:25) [7]


> Почему тогда не сделать
> Result := FruiteType = FRUITE_APPLE ?

Ты у нас спрашиваешь? Тебе виднее, как сделать. Может у тебя там фрукт мутант, помесь яблока с апельсином


 
begin...end ©   (2005-10-21 14:26) [8]

> umbra ©   (21.10.05 14:09) [3]

> Эта функция попределяет, имеет ли переменная FruiteType
> значение FRUITE_APPLE.

?!


 
Eugene_T   (2005-10-21 14:27) [9]

Я пытаюсь разобраться в чём смысл именно такого постоения условия


 
clickmaker ©   (2005-10-21 14:28) [10]


> Eugene_T   (21.10.05 14:27) [9]
> Я пытаюсь разобраться в чём смысл именно такого постоения
> условия

про побитовые операции читал?


 
Eugene_T   (2005-10-21 14:29) [11]

2clickmaker

Это не я придумал :)
Не могу разобраться


 
clickmaker ©   (2005-10-21 14:31) [12]


> Eugene_T   (21.10.05 14:29) [11]

почитай в хелпе про побитовые операции


 
Eugene_T   (2005-10-21 14:31) [13]


> про побитовые операции читал?

Нет. Можно поподробнее?


 
Zeqfreed ©   (2005-10-21 14:36) [14]

Eugene_T   (21.10.05 14:27) [9]
Обычно так реализуются флаговые типы (незнаю как правильно назвать). Переменная такого типа рассматривается как набор флагов (числовые значения - степени двойки). Добавление флага осуществляется через оператор or (например, Flags := Flags or SomeFlag включает SomeFlag во Flags). Исключение флага - and not (Flags := Flags and not SomeFlag), проверка присутствия флага в переменной - and (if Flags and SomeFlag = SomeFlag). Для понимания того, как все это работает читай про логические операции.


 
umbra ©   (2005-10-21 14:39) [15]

Эта функция определяет, является ли FruiteType яблоком. Пусть FruiteType = 6. Тогда (FruiteType and FRUITE_APPLE) = FRUITE_APPLE, т.е. 2. Скажем, FruiteType - яблоко конкретного сорта, белый налив там, или яблоко-груша


 
ShiFT   (2005-10-21 14:39) [16]

Двоичная математика, работа с битовой логикой

http://www.podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/bits.zip&fil e_id=app-bits


 
Eugene_T   (2005-10-21 15:36) [17]

Благодарю.



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
2-1129712316
Perf2k2
2005-10-19 12:58
2005.11.13
Всем снова привет - проблема с Query


4-1126446322
Still Swamp
2005-09-11 17:45
2005.11.13
Нужен счетчик времени... что ли?


4-1126229789
Ксардас
2005-09-09 05:36
2005.11.13
Обращение к портам LPT через WinAPI


1-1130214751
Denned
2005-10-25 08:32
2005.11.13
Проблема с загрузкой Bitmap ов из .res-файла


9-1120137208
D!m@N
2005-06-30 17:13
2005.11.13
DirectSound SDK для Delphi