Accessing Bits

BlitzMax Forums/BlitzMax Programming/Accessing Bits

The Forum Archive is locked. These are the original blitzbasic.com forums, kept so their posts can still be read and searched. No new topics, replies or edits can be made here. To join the conversation, head over to the Blitz3D+ forums.

SuperStrict

Local flag%

SetBit(flag, 7)
Print Bin(flag)
Print CheckBit(flag, 7)
Print 
ClearBit(flag, 7)
Print Bin(flag)
Print CheckBit(flag, 7)
Print 
ToggleBit(flag, 7)
Print Bin(flag)
Print CheckBit(flag, 7)

End


Function CheckBit%(value%, bit%)
  Return (value & (1 Shl bit)) Shr bit
End Function

Function SetBit%(value% Var, bit%)
  value :| (1 Shl bit)
End Function

Function ClearBit%(value% Var, bit%)
  value :& ~(1 Shl bit)
End Function

Function ToggleBit%(value% Var, bit%)  
  value :~ (1 Shl bit)
End Function