вернуться к уроку

Симметричны ли операции ^, |, &?

важность: 5

Верно ли, что для любых a и b выполняются равенства ниже?

  • (a ^ b) == (b ^ a)
  • (a & b) == (b & a)
  • (a | b) == (b | a)

Иными словами, при перемене мест – всегда ли результат останется тем же?

Операция над числами, в конечном итоге, сводится к битам.

Посмотрим, можно ли поменять местами биты слева и справа.

Например, таблица истинности для ^:

a b результат
000
011
101
110

Случаи 0^0 и 1^1 заведомо не изменятся при перемене мест, поэтому нас не интересуют. А вот 0^1 и 1^0 эквивалентны и равны 1.

Аналогично можно увидеть, что и другие операторы симметричны.

Ответ: да.