Симметричны ли операции ^, |, &?
важность: 5
Верно ли, что для любых a
и b
выполняются равенства ниже?
(a ^ b) == (b ^ a)
(a & b) == (b & a)
(a | b) == (b | a)
Иными словами, при перемене мест – всегда ли результат останется тем же?
Операция над числами, в конечном итоге, сводится к битам.
Посмотрим, можно ли поменять местами биты слева и справа.
Например, таблица истинности для ^
:
a |
b |
результат |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Случаи 0^0
и 1^1
заведомо не изменятся при перемене мест, поэтому нас не интересуют. А вот 0^1
и 1^0
эквивалентны и равны 1
.
Аналогично можно увидеть, что и другие операторы симметричны.
Ответ: да.