http://en.wikiversity.org/wiki/Bitwise_operators
http://en.wikipedia.org/wiki/Binary_numbers
Как только вы научитесь представлять числа в базе 2 (двоичные или «биты»), побитовые операторы достаточно просты для понимания.
Я просто приведу простой пример:
Пусть m = 31532 = 111101100101100 и n = 12325 = 11000000100101.
Тогда результат n & m (побитовое И- двоичный оператор):
(если n (i) и m (i) оба равны 1, то результат равен 1, 0 в противном случае)
111101100101100
011000000100101
===============
011000000100100
результат n |m (побитовое ИЛИ - бинарный оператор):
(если n (i) и m (i) равны 0, то результат равен 0, 1 в противном случае)
111101100101100
011000000100101
===============
111101100101101
результатиз n ^ m (битовое исключающее ИЛИ - бинарный оператор):
(если n (i) и m (i) равны 1, НО НЕ ОБА, то результат равен 1, 0 в противном случае)
111101100101100
011000000100101
===============
100101100001001
результат ~ n (побитовое НЕ - унарный оператор):
(если n (i) = 1, то результат равен 0, 1 в противном случае)
111101100101100
===============
000010011010011
пусть k = 3, результат n >> k (битовый сдвиг вправо):
111101100101100
===============
000111101100101
Они просто сместились вправо k = 3 раза.Это эффективно делит число на 2 ^ k = 8.Он обычно используется компилятором как оптимизация.
и наоборот, пусть k = 3, результат n << k (сдвиг влево по битам) равен </p>
111101100101100
===============
101100101100000
Они просто сместились в сторонуосталось к = 3 раза.Это эффективно умножает число на 2 ^ k = 8.Здесь следует обратить внимание на то, что 32-битное целое число может содержать до 2 ^ 32-1, произошло арифметическое переполнение, то есть старшие k бит были обрезаны.
Вы просто должны внимательно их просмотретьи выясните эти шаблоны.
Они важны в программировании, потому что они обычно используются при установке / очистке значений флага.
, поскольку int32 имеет 32 двоичных цифры, он может содержать до 32 различных типовлогических флагов (либо 0 для false, либо 1 для true)
Я думаю, что это об этом.Они довольно интуитивно понятны.