Информатика и технология программирования

       

Поразрядная операция И


Выполнение поразрядной операции И происходит с той лишь разницей, что между каждой парой разрядов производится операция И, смысл которой состоит во фразе "оба одновременно". Результат ее равен 1 тогда и только тогда, когда равны 1 оба операнда:

.


0 &#38 0 = 0
0 &#38 1 = 0
1 &#38 0 = 0
1 &#38 1 = 1

Наиболее часто используемый вариант этой операции :


a = a &#38 b; или a &#38= b;

Он интерпретируется таким образом: если бит операнда b равен 0 то бит результата однозначно будет нулевым, если 1 -то результат сохранит значение бита переменной a. Такую операцию можно назвать ВЫДЕЛЕНИЕ БИТОВ по маске, или просто МАСКИРОВАНИЕ БИТОВ первого операнда. Более очевиден смысл такой операции, если b является константой -в операнде a сохраняются значения только тех битов, которые установлены в 1 в константе, остальные очищаются:


a &#38= 0x0861; // Выделить биты 0,5,6,11, остальные очистить


a &#38= 0x00F0; // Выделить биты с 4 по 7, остальные очистить


// (биты второй цифры справа)

Поразрядную операцию " и" можно использовать и без сохранения результата как операцию ПРОВЕРКИ БИТОВ, например:


if ((a &#38 0x0200) !=0) // Проверить, установлен ли в 1


// 9-й бит переменной a



Содержание раздела