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

 R785211844650
 Z210696637574
 E368177590409

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

Сброс бита осуществляется при помощи операции двоичного И между переменной и числом, в котором все биты, кроме нужного, равны 1, а нужный бит равен нулю:

var = var & 0xF7; // обнуление 4-го бита

Как и для случая с установкой бита, для получения нужного числа проще всего использовать макрос _BV(x), только его значение надо проинвертировать:

var = var & (~_BV(4));

Краткая запись выглядит так:

var &= ~_BV(4);

Для случая одновременного обнуления сразу нескольких битов следует поступать аналогично:

var &= ~(_BV(4) | _BV(5));

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

  Ваш коментарий будет первым

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

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