2012-05-14 2 views
2

나는 다음과 같은 C 문이 있습니다C 비트 부울 논리

int res = x & (x^y); 

이 같은 일을 할 수있는 방법이 있나요하지만 xy 한 번만 각을 사용하여? 예를 들어

:

x | (~x & y) == x | y 

답변

7

예, XOR (a^b == (a & ~b) | (~a & b))를 확대하고 그 결과를 단순화함으로써, 하나 가져는 :

res = x & ~y; 
4

x & (x^y)x 및에 설정된 비트를 설정 x^y 예 : y에 설정되지 않았습니다.

그래서 당신은 할 수 있습니다 :

int res = x & ~y;