Mega Code Archive

 
Categories / Delphi / Algorithm Math
 

Do bit wise manipulation

Title: do bit-wise manipulation? {****************************************** 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.