Выставление и сброс битов

 

SetWord - слово, которое необходимо установить. BitNum - номер бита, который необходимо выставить согласно определениям в секции const (Bit0, Bit1 и др...). GetBitStat возвращает Истину, если бит установлен и Ложь в противном случае.

 

{ Слово записывается следующим образом...            }

{ Слово      -  0  0  0  0  0  0 0 0 0 0 0 0 0 0 0 0 }
{ Номер бита - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 }

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;