簡體   English   中英

^運算符對BOOL做了什么?

[英]What does the ^ operator do to a BOOL?

這句話是什么意思?

isChecked = isChecked ^ 1;

isChecked是一個BOOL

“^”是異或運算,因此0翻轉為1,1翻轉為零。 結果應與isChecked = !isChecked相同。

它將XOR與1檢查,所以我認為是真的^ 1 = 0(假)和假^ 1 = 1(真)

每個人都說這是對布爾的反感 - 這是真的 - 但這里的目的是切換布爾。

像這樣進行按位切換的優點是速度和在極端細節上調整位的能力。

更多按位運算符

它只翻轉BOOL的最后一點。 不是邏輯否定的可靠方法。 如果某人足夠瘋狂將BOOL變量設置為某個數字,例如5.然后執行^ 1只會將值的最后一位翻轉為4,仍然會將其評估為YES

如果你想在邏輯上否定,請使用! 而不是運營商

^獨家或運營商。

在您的例子是用於創建切換- isChecked將設置只有isChecked以前未設置。

這是按位XOR運算符,將0更改為1,將1更改為0。 看到所有的opertors 在這里

“^”稱為異或或異或運算。 在這種情況下,它會將布爾值從true更改為false,反之亦然。

要了解更多信息,請查看此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM