簡體   English   中英

^ =運算符到底是做什么的?

[英]What in the world does a ^= operator do?

我正在查看置換代碼,並試圖了解其工作方式,但是一次操作讓我感到茫然: ^= Google不會讓我搜索這些字符,所以誰能告訴我它在做什么,這個運算符是什么意思? 您可以在下面看到一個示例。 謝謝!

private void swap(ref char a, ref char b)
{
    if (a == b)
        return;
    a ^= b;
    b ^= a;
    a ^= b;
}

從MSDN
形式的表達

x ^= y

被評估為

x = x ^ y

除了x僅被評估一次 因此,如果您的x是一個屬性,它將被調用一次以getset一次值。

^XOR運算符對整數操作數執行按位exclusive-OR運算,對布爾操作數執行邏輯exclusive-OR運算(模2總和):

false ^ false = false;
false ^ true = true;
true ^ false = true;
true ^ true = false;

XOR運算符在密碼學中非常有用,因為它的主要特性是

a ^ b ^ a == b;

因此,您的代碼只需將兩個變量的值相加即可交換它們。

一個^ = B存儲在^ b,即異或的ab 值。

它是“異或”賦值運算符。

您可以在此處了解更多信息: https : //msdn.microsoft.com/zh-cn/library/0zbsw2z6.aspx

暫無
暫無

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

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