Существует ли "человеческий" способ гашения и выставления битов? {****************************************** Параметр TheBit считается в пределах 0..31 ******************************************}
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 TheeBit); end;
end. |