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
Vous devez vous connecter pour publier un commentaire.
Bien, pensons à ce sujet. Ce n'XOR?
Donc comment faire tourner que dans une fonction?
Nous allons réfléchir ET à, et à l'inverse de l'ordre ET (~x&~y) (cela arrive à être NI):
En regardant ces deux sorties, c'est très proche, tout ce que nous avons à faire, c'est juste, NI les deux précédentes sorties (x ET y) (x, NI y) et nous avons la solution!
Maintenant, il suffit d'écrire que:
BINGO!
Maintenant, il suffit d'écrire que dans une fonction
À l'aide de NAND logique:
Ou:
Ou:
Bien sûr, c'est plus facile:
Il est facile de voir que
sorte qu'il reste à exprimer
|
par seulement&
et~
. De Morgan, les lois dites-nousQui compte pour les fonctions NAND, droit? Après des études en ce schéma du circuit:
La même chose s'applique pour les non-bit-à-bit, j'. e. logique, en remplaçant simplement l'
!
au lieu de la~
.Vous pouvez effectuer un XOR au niveau du bit opération en c en utilisant les
^
opérateur.