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

 R785211844650
 Z210696637574
 E368177590409

1. Как установить в единицу нужный(ые) бит(ы) в переменной, не меняя остальные? Печать E-mail
Рейтинг: / 12
ХудшаяЛучшая 
Автор 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) | Просмотров: 17472

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

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

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