May 06, 2024, 12:56:18 PM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


SET / RESET bit in byte ?

Started by paja, March 02, 2010, 05:32:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

paja

Hi,

How can I SET or RESET bit in byte ?

sapero

UINT value = 0

' set 20 bits:  11111111 11111111 10000100 00100001
value |= 0xFFFF8421 ' value is 0xFFFF8421

' toggle one bit 00000000 00000000 00000000 00000001
value = value ^ 1   ' value is 0xFFFF8420

' reset 3 bits
' bits to be reset: 11100000 00000000 00000000 00000000
' mask:             00011111 11111111 11111111 11111111
value &= 0x1FFFFFFF ' value is 0x1FFF8420

ckoehn

I think this should work.

SUB SetBit(INT v BYREF, INT vbit BYVAL)
INT mb
mb=2^bit
v|=mb
ENDSUB

SUB ResetBit(INT v BYREF, INT vbit BYVAL)
INT mb
mb = 0xFFFFFF-(2^vbit)
v &= mb
ENDSUB