밑의 소스코드에서 x ^ 0x1는 뭘 하는 건가요? 제가 모르는 무슨 규칙인가요?
x ^ 0x1
if( 0 != ( x ^ 0x1 ) ) encode( x, m );
0x1은 16진수 1을 뜻합니다.
0x1
1
XOR 연산의 truth table을 보면
x xor 1은 x가 0이면 true, 1이면 false를 return하는 걸 알 수 있습니다.
다시 말해, (x ^ 0x1)는 x가 0인지 아닌지 검사하는 일을 하므로 이를 다르게 표현하면 (x ^ 0x1) = (x != 1)입니다.
(x ^ 0x1)
(x != 1)
코드 전체를 봐야 알 수 있지만 일부러 어렵게 짠 코드 같네요
프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.
댓글 입력