(x ^ 0x1) != 0는 뭘 하는 건가요?


밑의 소스코드에서 x ^ 0x1는 뭘 하는 건가요? 제가 모르는 무슨 규칙인가요?

소스코드

if( 0 != ( x ^ 0x1 ) )
    encode( x, m );
  • 2016년 01월 19일에 작성됨

조회수 235


1 답변


좋아요
0
싫어요
채택취소하기

0x1은 16진수 1을 뜻합니다.

XOR 연산의 truth table을 보면 alt text

x xor 1은 x가 0이면 true, 1이면 false를 return하는 걸 알 수 있습니다.

다시 말해, (x ^ 0x1)는 x가 0인지 아닌지 검사하는 일을 하므로 이를 다르게 표현하면 (x ^ 0x1) = (x != 1)입니다.

코드 전체를 봐야 알 수 있지만 일부러 어렵게 짠 코드 같네요

  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close