...do bit-wise manipulation?

Author: Damian Gorski

Category: Misc

{******************************************
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.

 

printed from
www.swissdelphicenter.ch
developers knowledge base