2013-02-26 4 views
-1

^을 사용하지 않고 비트 XOR을 구현하는 방법이 있습니까?^을 사용하지 않고 XOR을 구현하는 방법은 무엇입니까?

1) 다른 비트 연산을 사용합니까?

2) 산술 연산이 필요합니까?

+1

왜? (a | b) & ~ (a & b) –

+4

XOR이 무엇을 의미하는지 생각해보십시오. OR, AND 및 NOT 연산의 조합이 트릭을 수행한다는 것이 명백해야합니다. –

+7

'^'의 문제점은 무엇입니까? 정확히 원하는 것을 수행하는 연산자가 있습니다. 그걸 써! –

답변

4

나는 당신이 그것을 할 싶어 이유를 알고 있지만하지 않습니다 (a|b)&~(a&b) 또는 (a&~b)|(b&~a) 산술 버전이 좋은 이유없이 시도하기에 너무 복잡한 것 같다.

12
a xor b == (a and (not b)) or ((not a) and b) 
+1

bitwise 버전에 대해 'bitand'등을 사용 하시겠습니까? –

+2

나는 상징 대신에 단어를 사용하는 것이 대답을 명확하게 할 것이라고 생각했다; 그것들은 비트 연산입니다. –

+2

확인. 표준은 적절한 의미의 단어를 제공합니다 :'&'는'bitand'이고,'|'는'bitor'이고'~'는'compl'이며'and','or' 및'not'는 단어를 제공합니다. 논리적 연산 ('&&','||'및'!')을 사용하면 약간 혼동을 줄 수 있습니다. –

관련 문제