2010-07-14 1 views
-5

Duplicate possible:
What does ‘^’ do in c# (Enums)?définition XOR (cette phrase est de rendre le titre acceptable)

Cela peut être une question noobish mais ... nulle part ai-je vu ce que signifie XOR en C++ ou C#. Je pense que cela pourrait signifier et/ou si c'est le cas, je suis intelligent parce que c'est une supposition aveugle = D. J'utilise C# maintenant mais je suis à peu près sûr que xor veut dire la même chose. Le problème est - je ne sais pas ce que xor signifie. Je sais que xor est représenté par un^si. Je voudrais aussi savoir ce que ^^ signifie.

+2

en double de nombreuses questions, y compris [Qu'est-ce que '^' faire C# (énumérations)?] (Http://stackoverflow.com/questions/234776/what-does -do-in-c-enums) = et [ L'opérateur^est-il vraiment l'opérateur XOR en C#? ] (http://stackoverflow.com/questions/1508153/is-the-operator-really-the-xor-operator-in-c). –

+1

Vous devriez changer votre titre à quelque chose comme "Que signifie XOR (^) en C++/C#?" ou quelque chose comme ça. (cependant, je pense que XOR signifie la même chose dans toutes les langues): D – Dian

Répondre

2

Une recherche google pour "define: xor" vous dirigera vers http://en.wikipedia.org/wiki/Xor, la source de toutes les connaissances. La lecture de ce vous donnera un aperçu de ce que signifie :)

Goodluck

[modifier] Et juste pour préciser, XOR ne signifie pas et/ou, désolé ou exclusif (XOR). Et la définition de xor est indépendante du langage de programmation.

+2

Il n'y a pas de '^^', car il ne peut pas être court-circuité, et '! =' et '^' fonctionnent tous les deux comme non -short-circuiting booléen XOR. –

+0

... sauf si votre langue n'a pas de booléens stricts. – dan04

1

XOR est l'abréviation de 'eXclusive OR'. Exclusif Le résultat de l'opération est vrai, uniquement si l'un des arguments est vrai et non les deux.

ayant 1 comme valeur de vrai, et 0 en tant que valeur de faux, l'opération au niveau du bit donne 1 lorsque seulement l'un des bits dans des positions correspondant est 1.

6

Exclusive ou entre deux bits signifie que le résultat est 1 si l'un et un seul bit est 1.

La table de vérité est:

| 0 | 1 
---+---+--- 
0 | 0 | 1 
1 | 1 | 0 

Quand vous parlez de XOR une valeur plus grande, il est juste de prendre chaque bit un à la fois, donc:

1111 0000 
xor 1010 1010 
    ---- ---- 
    = 0101 1010 

Pour ce que ça vaut la peine, une liste complète des opérations binaires:

  • and, 1 que si ses deux entrées sont 1, sinon 0.
  • or, 0 seulement si ses deux entrées sont 0 , d'autre 1.
  • xor, 1 seulement si une (pas les deux) de ses entrées est égal à 1, sinon 0.
  • not, 1 seulement si son entrée est 0, sinon 1.

Et les tables vérité:

and| 0 | 1  or| 0 | 1  xor| 0 | 1  not| 0 | 1 
---+---+--- ---+---+--- ---+---+--- ---+---+--- 
0 | 0 | 0  0 | 0 | 1  0 | 0 | 1  | 1 | 0 
1 | 0 | 1  1 | 1 | 1  1 | 1 | 0 
Questions connexes