17 Декабрь 2008

Logical XOR operator in C++

Понадобилось использовать оператор logical XOR и... поначалу не нашел я его в С++. В смысле не нашел оператора, на котором написано "logical XOR". А вообще оператор есть: !=.

5 коммент.:

Dragon комментирует...

Только логические выражения в которых написано наподобие a != b, где a и b логические переменные, выглядят непонятно. :-(
Я поэтому стараюсь избегать его использования.

White Knight комментирует...

А чем плоха конструкция:
!(a && b) && (a || b)
?

Raider комментирует...

White Knight: да слишком уж она громоздка, читать неудобно и писать тоже. Вполне себе вариант когда на месте a и b - вызовы функций символов на 20-30 кода, да или просто имена переменных символов 10-20.

Raider комментирует...

Тогда уж лучше
a ? !b : b
и то короче и нагляднее.

dimacpp комментирует...

Bitwise Exclusive OR Operator: ^

"The bitwise exclusive OR operator (^) compares each bit of its first operand to the corresponding bit of its second operand. If one bit is 0 and the other bit is 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0."

...

"The xor operator is the text equivalent of ^. "

MSDN