2. Как обнулить нужный(ые) бит(ы) в переменной, не меняя остальные?
Автор ARV   
18.12.2009 г.

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

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

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

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

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

var &= ~_BV(4);

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

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

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

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

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