May 15, 2024, 08:22:55 PM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


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