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

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

소스코드

if( 0 != ( x ^ 0x1 ) )
    encode( x, m );

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)입니다.

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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.