Comment faire un peu XOR sage en C

Je suis en train d'entrer dans la programmation en C, et je vais avoir de la difficulté à écrire un XOR au niveau du bit de fonction avec seulement ~ et & opérateurs. Exemple: bitXor(4, 5) = 1. Comment puis-je y parvenir?

Pour l'instant j'ai ceci:

int bitXor(int x, int y) {

    return z;
}

source d'informationauteur sebi