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





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

 R785211844650
 Z210696637574
 E368177590409

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

Установка бита осуществляется при помощи двоичного ИЛИ этой переменной и числом, в котором установлен нужный бит. Например:

var = var | 0x40; // установка 6-го бита в 1.

Проще всего получить число с установленным нужным битом при помощи операции логического сдвига:

var = var | (1<<6);

В WinAVR предусмотрен макрос _BV(x), который создает число с установленным в 1 битом x. Для любителей других компиляторов этот макрос (для совместимости) можно добавить самостоятельно:

#define _BV(x) (1<<(x))

С его использованием операция установки 6-го бита переменной var запишется так:

var = var | _BV(6);

Или более кратко (в общепринятом стиле Си):

var |= _BV(6);

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

var |= _BV(6) | _BV(5); // установка 5-го и 6-го битов

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

  Коментарии (1)
 1 Написал(а) Максим Геннадьевич, в 07:15 24.12.2009
Думаю теперь вопросов будет меньше ;-)

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

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