Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизБитовые флаги Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c