Let's say I have uint8_t bytes[maxBytes];.
Now I want to compare the lower 6 bits of the first byte (bytes[0]) with 0x3c.
I tried to do it like this:
bytes[0] & 0x3f == 0x3c
Unfortunately, this did not produce the expected result. (i.e. it's always false, even though when I print out bytes[0] & 0x3f , it is 0x3c)
I've played around with this some more and found out that
bytes[0] & 0x00 == 0x00
is sometimes true, and sometimes false. (Same with bytes[0] & 0x0 == 0x0 and bytes[0] & 0x00 == 0x0). Shouldn't it always be true?
What is going on here? How can I make my 0x3c comparison work?
Sitenote: I'm running this code on an arduino w/ atmega328pb MCU.