2013-06-10 16 views

cevap

42

Boolean XOR, != ile aynı değil, "eşit değil."

http://en.wikipedia.org/wiki/Truth_table#Logical_conjunction

+0

Vay be, ben tamamen bu ... Teşekkür kaçırdı. –

+2

Katılmıyorum. '1! = 2' ifadesi' true' olarak değerlendirilir, ancak '1 ve 2' her ikisi de true olduğundan, 'XOR 2' kesinlikle yanlıştır. ! = Operatörünü bir XOR olarak kullanmak için önce 'bool' yapmalısınız. – IanPudney

+4

@quinxorin: bu saçmalık. _logical_ XOR hakkında soru sordum, 1 ve 2 _logical_ değerleri değil. C++ 'da mantıksal anlamı' bool '. –

3

p | q | p != q 
--+---+------- 
F | F | F  
T | F | T  
F | T | T  
T | T | F  
Eğer iki değer aynı olup olmadığını arıyorsanız, size != veya bitsel operatörünü ^ kullanabilirsiniz. Değerleriniz zaten bool ise bunu kullanabilirsiniz. değerleriniz tamamen bool değilse Ancak, ilk bool onları dökme:

((bool)myVal)!=((bool)myOtherVal) 
((bool)myVal)^((bool)myOtherVal) 
//either works 
+0

olmalıdır. İkinci çalışmalardan kesinlikle emin misiniz? Standart aynı değerde değerlendiren tüm "bool" değişkenlerinin bitwise eşit olduğunu söylüyor mu? –

+0

Standarttan emin değilim; Windows'da MinGW'de çalışır. – IanPudney

+0

Bu hiç bir şey ifade etmiyor. –

İlgili konular