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

조회수 2894회

밑의 소스코드에서 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)입니다.

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)