{******************************************
Параметр TheBit считается в пределах 0..31
(32 бита информации)
******************************************}
unit Bitwise;
interface
function IsBitSet (const val: longint; const TheBit: byte): boolean;
function BitOn (const val: longint; const TheBit: byte): LongInt;
function BitOff (const val: longint; const TheBit: byte): LongInt;
function BitToggle(const val: longint; const TheBit: byte): LongInt;
implementation
function IsBitSet(const val: longint; const TheBit: byte):Boolean; begin
Result := (val and (1 shl TheBit)) <> 0;
end;
function BitOn(const val: longint; const TheBit: byte):LongInt;
begin
Result := val or (1 shl TheBit);
end;
function BitOff(const val: longint; const TheBit: byte):LongInt;
begin
Result := val and ((1 shl TheBit) xor $FFFFFFFF);
end; function BitToggle(const val: longint; const TheBit: byte):LongInt;
begin
Result := val xor (1 shl TheBit);
end;
end.