5. Как узнать, установлен(ы) или сброшен(ы) определенный(ые) бит(ы) в переменной?
Автор ARV
18.12.2009 г.
Проверка состояния бита осуществляется при помощи наложения маски на переменную, при этом в маске задается единственный нужный бит:
if(var & _BV(5)) { // здесь операторы, если в var 5-й бит установлен }
При проверке сразу нескольких бит недостаточно убедиться в ненулевом значении результата маскирования, нужно обязательно быть уверенным, что результат маскирования совпадает со значением маски:
mask = _BV(3) | _BV(6); // маска сразу для 2-х битов if((var & mask) == mask){ // если оба бита установлены - обрабатываем ситуацию тут }