Посмотри, может поможет чем...
Код:
Const
Bit0 = 1;
Bit1 = 2;
Bit2 = 4;
Bit3 = 8;
Bit4 = 16;
Bit5 = 32;
Bit6 = 64;
Bit7 = 128;
Bit8 = 256;
Bit9 = 512;
Bit10 = 1024;
Bit11 = 2048;
Bit12 = 4096;
Bit13 = 8192;
Bit14 = 16384;
Bit15 = 32768;
procedure SetBit(SetWord, BitNum: Word);
begin
SetWord:= SetWord or BitNum; { Устанавливаем бит }
end;
procedure ClearBit(SetWord, BitNum: Word);
begin
SetWord:= SetWord or BitNum; { Устанавливаем бит }
SetWord:= SetWord xor BitNum; { Переключаем бит }
end;
procedure ToggleBit(SetWord, BitNum: Word);
begin
SetWord:= SetWord xor BitNum; { Переключаем бит }
end;
function GetBitStat(SetWord, BitNum: Word) : Boolean;
begin
GetBitStat:= SetWord and BitNum = BitNum { Если бит установлен }
end;
если не хочешь мучиться с константами, то везде BitNum понимать как порядковй номер бита и заменить его на (1 shl BitNum).. так даже красивше вроде..