2011-03-02 101 views
7

我有以下的代碼行:在c/C++中,^ =是什麼意思?

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

是什麼運營商^=是什麼意思?

+11

*嘆*互聯網之前,我曾在我的辦公桌上一個穿本書叫「C編程語言」。像這樣的問題的答案總是在那本書中。 – 2011-03-02 22:59:47

+0

@Greg,現在它在你的Kindle上? – corsiKa 2011-03-02 23:06:24

+4

@Greg Hewgill:親愛的年輕一代 - 你們這一代很糟糕。真誠的,每一代自曙光以來。 :) – James 2011-03-02 23:08:17

回答

17

它是​​3210賦值運算符。基本上:

x ^= y; 

相同:

x = x^y; 
+0

這當然,假設'^ ='運算符沒有被超載到誰知道什麼。 :-) – corsiKa 2011-03-02 23:08:11

+0

另外你應該指出,它不僅僅是C [++]語言的一部分,而是它在許多語言中的一部分。 – RobertPitt 2011-03-02 23:09:03

9

這意味着使用key[shift++]瓶坯上contents[pos++]一個XOR operation並設置contents[pos++]等於結果。

實施例:

contents[pos++]  00010101 
key[shift++]  10010001 
        -------- 
        10000100