Python поддерживает перегрузку операторов, так что он может значить что угодно. У целых чисел
это bitwise XOR.
Берутся два целых числа, представляются в двоичной системе счисления. Затем, справа налево между каждой парой битов производится
исключающее ИЛИ.
Пример: числа 2 и 5 — это 10b и 101b.
Результат: 111b, т.е. 7.
Другой пример: числа 3 и 5 — это 11b и 101b.
Результат: 110b, т.е. 6.
Как устроен минус в бинарной форме, не уверен, т.к. оператор поддерживает большие числа. Предполагаю, что у больших операндов абсолютные значения в двоичной системе и биты знака обрабатываются раздельно. В общем, минус на минус всегда даёт плюс.
Почему справа налево, думаю, очевидно. На самом деле, все биты могут обрабатываться одновременно, просто более короткое число слева дополняется нулями.