Что делает оператор каре (^) в Python, делают?

Я натыкался на оператор каре в Python сегодня и испытании его, я получил следующий вывод:

>>> 8^3
11
>>> 8^4
12
>>> 8^1
9
>>> 8^0
8
>>> 7^1
6
>>> 7^2
5
>>> 7^7
0
>>> 7^8
15
>>> 9^1
8
>>> 16^1
17
>>> 15^1
14
>>>

Это, кажется, основано 8, таким образом, я предполагаю своего рода операцию байта? Я, может казаться, не нахожу много об этом поиске, сайты кроме него ведут себя странно для плаваний, у кого-либо есть ссылка на то, что делает этот оператор или можно ли объяснить это здесь?

103
задан MatrixFrog 16 March 2010 в 00:49
поделиться

3 ответа

Это побитовое XOR (исключающее ИЛИ).

Результатом является истина, если один (и только один) из операндов (оценивается как истинный).

Чтобы продемонстрировать:

>>> 0^0
0
>>> 1^1
0
>>> 1^0
1
>>> 0^1
1

Чтобы объяснить один из ваших примеров:

>>> 8^3
11

Подумайте об этом следующим образом:

1000  # 8 (binary)
0011  # 3 (binary)
----  # APPLY XOR ('vertically')
1011  # result = 11 (binary)
154
ответ дан 24 November 2019 в 04:18
поделиться

При необходимости он вызывает метод __ xor __ () или __ rxor __ () , который для целочисленных типов выполняет побитовое исключающее ИЛИ.

39
ответ дан 24 November 2019 в 04:18
поделиться

Это побитовое исключающее ИЛИ. Бинарные побитовые операторы описаны в главе 5 Справочника по языку Python .

12
ответ дан 24 November 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: