Допустим, у меня есть uint8_t bytes[maxBytes];
.
Теперь я хочу сравнить младшие 6 бит первого байта (bytes[0]
) с 0x3c
.
Я пытался сделать это так:
bytes[0] & 0x3f == 0x3c
К сожалению, это не дало ожидаемого результата.(то есть это всегда ложь, хотя когда я распечатываю bytes[0] & 0x3f
, это 0x3c
)
Я немного поиграл с этим и обнаружил, что
bytes[0] & 0x00 == 0x00
иногда это правда, а иногда и ложь.(То же самое с bytes[0] & 0x0 == 0x0
и bytes[0] & 0x00 == 0x0
).Разве это не всегда должно быть правдой?
Что здесь происходит?Как я могу заставить работать 0x3c
сравнения?
Sitenote: я запускаю этот код на Arduino с микроконтроллером atmega328pb.