Выставление и сброс битов
|
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; |