я получаю от восьмиканального устройства состояние его каналов в виде восьми нулей/единиц: deviceState: 01111100 - контакт на 1-м канале разомкнут, LED на 4-м канале включен (остальное аналогично) deviceState: 01111101 - контакт на 1-м канале замкнут, LED на 4-м канале включен deviceState: 01110101 - контакт на 1-м канале замкнут, LED на 4-м канале выключен Как мне выделить (узнать) из этого только, к примеру, состояние контакта на 1-м канале - 0111110x, независимо от остальных циферок? Т.е. в идеале получить что-то вроде boolean state1ch = true/false. Наложение маски boolean state1ch = deviceState & 00000001; не срабатывает (точнее, выполняет не то, что в моем представлении ожидалось).
А так boolean state1ch = deviceState & 1; boolean state2ch = deviceState & 2; boolean state3ch = deviceState & 4; boolean state4ch = deviceState & 8; или boolean state1ch = deviceState & b00000001; boolean state2ch = deviceState & b00000010;
согласен, только не 0b, а просто B http://arduino.ru/Reference/Byte А вот насчет && Вы погорячились. В данном случае нужно именно && http://www.c-cpp.ru/books/bitovye-operatory
Да, похоже, что я был не прав. И приведенная мной же цитата тому подтверждение. Для правильного кода должен быть один амперсант.