Главная arrow Начинающим arrow FAQ по языку Си arrow 5. Как узнать, установлен(ы) или сброшен(ы) определенный(ые) бит(ы) в переменной?  
27.03.2017 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Простые устройстваОтличные товары по превосходным ценамОтличные товары по превосходным ценам
5. Как узнать, установлен(ы) или сброшен(ы) определенный(ые) бит(ы) в переменной? Печать E-mail
Рейтинг: / 5
ХудшаяЛучшая 
Автор ARV   
18.12.2009 г.

Проверка состояния бита осуществляется при помощи наложения маски на переменную, при этом в маске задается единственный нужный бит:

if(var & _BV(5)) {
    // здесь операторы, если в var 5-й бит установлен
}

При проверке сразу нескольких бит недостаточно убедиться в ненулевом значении результата маскирования, нужно обязательно быть уверенным, что результат маскирования совпадает со значением маски:

mask = _BV(3) | _BV(6); // маска сразу для 2-х битов
if((var & mask) == mask){
    // если оба бита установлены - обрабатываем ситуацию тут
}

Добавить в любимые (0) | Просмотров: 8271

  Коментарии (2)
 1 Написал(а) Toledo, в 01:35 04.08.2012
могу я так проверить окончание АЦП: 
if(_BV(ADIF)) { // проверяем окончание АЦП 
здесь делать нужный код если ацп завершено 
}  
??
 2 Написал(а) ARV, в 20:12 08.08.2012
написано же, как надо проверять бит: надо взять регистр и наложить на него маску: 
if(ADCSRA & _BV(ADIF)) { 
// нужный код 
}

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.

 
« Пред.   След. »
Полезные материалы по сходным темам
Кто на сайте?
Сейчас на сайте находятся:
7 гостей
Помощь on-line
BannerFans.com