2010-06-06 7 views
10

Ich versuche, die effektivste Art und Weise des Schreibens eines XNOR-Gatter in C.C: XNOR/Exklusiv-Nor-Tor?

if(VAL1 XNOR VAL2) 
{ 
    BLOCK; 
} 

Irgendwelche Vorschläge zu finden?

Danke.

Antwort

7
if(!(val1^val2)) 
{ 
    block; 
} 

edit: außerhalb von logischen Operationen, dann würden Sie wahrscheinlich ~(val1^val2) wollen genau sein, aber ich finde das! klarer.

0

Vorausgesetzt val1 und val2 sind in der normalen C Logischer Weise behandelt werden (nicht Null wahr ist), dann gilt:

if (!val1^!!val2) 
{ 

} 

den Trick.

22

Mit zwei Operanden ist dies ganz einfach:

if (val1 == val2) 
{ 
    block; 
} 
+0

Dies sollte die akzeptierte Antwort. Manchmal neigen wir dazu, von den offensichtlichsten Dingen wegzusehen! – Ritikesh