ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
906707 Топик полностью
Ксения (25.02.2019 15:52 - 16:05, просмотров: 79) ответил misyachniy на Приводил к "unsigned char" и сравнивал, на картинке закомментирована строчка.
В закомментареной строке у вас другое условие. Вот как надо: if( (data_buf[i] ^ (unsigned char)signal_busy) == 0)) { zero_counter++; } Тогда data_buf[i] будет приведено к int вида 0x000000FE Тогда signal_busy будет приведен к int вида 0x000000FE и операция после приведения произойдет нормально. По той же причине if( (unsigned char)data_buf[i] == (unsigned char)signal_busy) равны, а if( data_buf[i] == signal_busy) неравны, т.к. в последнем случае: data_buf[i] будет приведено к int вида 0x000000FE signal_busy будет приведен к int вида 0xFFFFFFFE