Yalu X. schrieb:
> Programmierer schrieb:
>> Yalu X. schrieb:
>>> Von ^ gibt es in C kein logisches Äquivalent.
>>
>> Das ist jetzt aber sehr pingelig :) Wenn man boolesche Datentypen nimmt
>> (bool aus stdbool.h, oder einfach C++), schon. Oder halt mit "!!" vor
>> dem Wert.
>
> In diesem Fall gibt es keinen Unterschied zwischen dem bitweisen und dem
> logischen XOR, weswegen sich der logische Operator erübrigt.
Das ist aber beim AND und OR auch nicht anders, bis darauf, dass diese
noch eine short-circuit-evaluation machen.
Man muss für ein logisches exklusives Oder dann an Stelle von a != b
lieber !!a != !!b schreiben, wenn man nicht garantieren kann, dass die
Werte nur 0 oder 1 sein können.