Язык С++ и программирование на нем. Рейзлин В.И. - 16 стр.

UptoLike

Составители: 

18
Операция | сравнивает каждый бит первого операнда с соответ-
ствующим битом второго операнда; если любой из них или оба равны 1,
то соответствующий бит результата устанавливается в 1, в противном
случае в 0.
Операция ^ . Если один из сравниваемых битов равен 0, а другой
равен 1, то соответствующий бит результата устанавливается в 1, в про-
тивном случае, т.е. когда оба бита равны 1 или оба равны 0, бит резуль-
тата устанавливается в 0.
Операция ~ меняет в битовом представлении операнда 0 на 1, а 1
на 0.
Побитовая операция & часто используется для маскирования не-
которого множества битов, например:
С=N&0177
передает в С семь младших битов N, полагая остальные равными 0. (С
первого нуля в С++ начинаются восьмеричные константы; с шест-
надцатеричные константы).
Пусть N =642. Приведем побитовое представление N восьмерич-
ной константы 0177 и результата С:
N 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0
0177 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Операция | используется для включения битов:
С= N|MASK
устанавливает в 1 те биты в N, которые равны 1 в MASK.
Еще примеры:
int a=0x45ff, b=0x00ff;
int c;
c= a ^ b; // c: 0x4500
c= a | b; // c: 0x45ff
c= a & b; // c: 0x00ff
c= ~ a; // c: -0x3a00
c= ~ b; // c: -0x7f00