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

Вниз

Битовые флаги   Найти похожие ветки 

 
Sliski Slimak   (2003-06-14 01:12) [0]

Господа, как определить из суммы битовых флагов, какие флаги установлены?
Ну, например:
const
BF_1=2;
BF_2=4;
BF_3=8;
BF_4=16;
.....
..........
x:=BF_1 or BF_3;

а как теперь-то определить, какие флаги установлены?


 
Metal Knight   (2003-06-14 01:43) [1]

if (x AND BF_1) then ...


 
Sliski Slimak   (2003-06-14 11:40) [2]

Покорнейше благодарю!


 
Sliski Slimak   (2003-06-14 13:12) [3]

Но увы, вышеприведённый вариант НЕ работает.......
Может, кто-нибудь ещё подскажет?


 
panov   (2003-06-14 15:55) [4]

В форуме "Потрепаться" есть тема "Уроки Ю.Зотова"
Думаю, что надо бы с этого начать.

Правльно так:
if (x AND BF_1)= BF_1 then ...


 
Юрий Зотов   (2003-06-14 17:31) [5]

> Sliski Slimak

Советую заглянуть сюда:
http://www.baseprogram.narod.ru/index.htm


 
HolyGlory   (2003-06-14 17:43) [6]


> В форуме "Потрепаться" есть тема "Уроки Ю.Зотова"
> Думаю, что надо бы с этого начать.
>
> Правльно так:
> if (x AND BF_1)= BF_1 then ...

Правильней так: if (x and BF_1)<>0 then...
(В первом случае будет cmp eax, BF_1 во втором or eax,eax (или test eax,eax)). Последняя занимет меньше места и декодируется за один такт :)



 
Юрий Зотов   (2003-06-14 18:58) [7]

Еще вариант:
if Boolean(x and BF_1) then...



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

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

Наверх




Память: 0.45 MB
Время: 0.034 c
3-84033
korvin
2003-06-01 07:30
2003.06.26
Вертикальное расположение текста в компонентах QReport`а


14-84600
Плохой человек
2003-06-08 01:02
2003.06.26
Россия - Швейцария, 2:2


7-84790
neodiX
2003-04-17 17:17
2003.06.26
Блокировка клавы с помошью хука


3-83986
DBDev
2003-05-29 16:55
2003.06.26
ПОМОГИТЕ грамотно организовать поиск на базе SP?


14-84538
murzikN
2003-06-06 23:13
2003.06.26
Torry.net навсегда умер?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский