不好意思問這樣一個簡單的問題,但這些事情很難谷歌。^在目標c ios中是什麼意思?
我有iOS中的代碼連接到切換攝氏和華氏之間切換,我不知道^ 1的含義。 self.celsius是布爾
感謝
self.celsius = self.celsius^1;
不好意思問這樣一個簡單的問題,但這些事情很難谷歌。^在目標c ios中是什麼意思?
我有iOS中的代碼連接到切換攝氏和華氏之間切換,我不知道^ 1的含義。 self.celsius是布爾
感謝
self.celsius = self.celsius^1;
這是一個C語言的操作符的意思是 「按位異或」。
Wikipedia給出了一個很好的解釋:
XOR
甲按位異或取相同長度的兩個位模式和每對相應比特執行 邏輯異或運算。如果只有第一位爲1或只有第二位爲1,則每個位置的結果爲1,但如果兩者均爲0或兩者均爲1,則將爲0.在此,我們 執行兩位比較,即1如果兩位是 不同,如果它們相同則爲0。例如:
0101 (decimal 5)
XOR 0011 (decimal 3)
= 0110 (decimal 6)
的按位異或,可以使用在寄存器 (也稱爲肘節或翻轉)以反轉所選擇的位。任何位可以通過與 1異或來切換。例如,給定位模式0010(十進制2),第二和第四位可以通過位模式 按位異或來切換,所述位模式在第二和第四位置包含1:
0010 (decimal 2)
XOR 1010 (decimal 10)
= 1000 (decimal 8)
感謝您的解釋 – 2013-02-23 13:34:55
這是一個異或操作。
這是按位異或運算符(請參閱http://www.techotopia.com/index.php/Objective-C_Operators_and_Expressions#Bitwise_XOR)。
它在做什麼在這種情況下,來回切換,因爲0^1
爲1,1^1
爲0
它是指按位異或運算符。 看看這個:http://stackoverflow.com/questions/1912023/caret-in-objective-c – lakesh 2013-02-23 13:30:04
提示:當你遇到這樣的問題時,不要谷歌的Objective-C,只是Google的「C」(當然還有其他適當的術語,比如「運營商」)。 – 2013-02-23 13:31:03
你爲什麼要這樣做,而不是'self.celsius =! self.celsius'這只是令人困惑的權利? – Robert 2013-02-23 13:34:40