Целое число представлено в виде последовательности бит в памяти. Для взаимодействия с людьми компьютер должен отображать его в виде десятичных цифр, но все вычисления выполняются как двоичные. 123
в десятичном формате сохраняется как 1111011
в памяти.
Оператор &
является поразменным «И». Результатом являются биты, которые включаются в оба числа. 1001 & 1100 = 1000
, так как только первый бит включен в обоих.
Оператор |
является побитным «Or». Результатом являются биты, которые включаются в любом из чисел. 1001 | 1100 = 1101
, так как только второй бит справа равен нулю в обоих.
Существуют также операторы ^
и ~
, которые побитовые «Xor» и побитовые «Not», соответственно , Наконец, существуют операторы сдвига <<
, >>
и >>>
.
Под капотом 123
сохраняется как 01111011 00000000 00000000 00000000
или 00000000 00000000 00000000 01111011
в зависимости от системы , Использование побитовых операторов, использование которых не имеет значения, поскольку оба представления рассматриваются как логическое число 00000000000000000000000001111011
. Снятие ведущих листьев нулей 1111011
.