Tips (1541)
{****************************************** TheBit parameter is counted from 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.
Rate this tip: