2011-03-02 4 views
7

다음 코드 행이 있습니다.^는 c/C++에서 무슨 뜻입니까?

contents[pos++] ^= key[shift++]; 

연산자 ^=의 의미는 무엇입니까?

+11

이 * 한숨이 내 책상에 잘 착용 책이라는 * 인터넷 전에 내가했던 비트 연산을하다 "C 프로그래밍 언어" 이런 질문에 대한 대답은 항상 그 책에있었습니다. –

+0

@ 그렉 그리고 이제 귀하의 킨들에 있습니까? – corsiKa

+4

@Greg Hewgill : 젊은 세대 여러분 - 세대가 빤다. 근실하게, 새벽부터 모든 세대. :) – James

답변

17

할당 연산자는 XOR입니다.

x = x^y; 
+0

이것은 물론 누가^^ 연산자가 무엇을 알고 있는지 과부하되지 않았다고 가정한다. :-) – corsiKa

+0

또한 C [++] 언어의 일부가 아니라 여러 언어로되어 있다는 점을 지적해야합니다. – RobertPitt

9

key[shift++]를 사용 contents[pos++]XOR operation 프리폼과 동일한 결과 contents[pos++] 설정 수단 : 기본적으로 :로

x ^= y; 

는 동일하다.

예 :

contents[pos++]  00010101 
key[shift++]  10010001 
        -------- 
        10000100 
관련 문제