XOR +---+---+---+ | a | b | = | +---+---+---+ | 0 | 0 | 0 | +---+---+---+ | 0 | 1 | 1 | +---+---+---+ | 1 | 0 | 1 | +---+---+---+ | 1 | 1 | 0 | +---+---+---+ xor_by = 2 a = bin(i) b = bin(xor_by) c = bin(i ^ xor_by) d = int(c, base=2) +---+-----+-----+-----+---+ | i | a | b | c | d | +---+-----+-----+-----+---+ | 0 | 0 ^ 10 | 10 | 2 | +---+-----------+-----+---+ | 1 | 1 ^ 10 | 11 | 3 | +---+-----------+-----+---+ | 2 | 10 ^ 10 | 0 | 0 | +---+-----------+-----+---+ | 3 | 11 ^ 10 | 1 | 1 | +---+-----------+-----+---+ | 4 | 100 ^ 10 | 110 | 6 | +---+-----------+-----+---+