Algorithm Math Delphi

Title: How to do bit-wise manipulation
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.