C#용 논리 XOR 연산자(^)
3987 단어 csharp
為什麼想紀錄呢?
有次在刷題時看到一個神奇的解法,非常優雅又快速,反觀自己的解法真的是基本到不行,從來沒想過可以利用 XOR,今天就給宥好個個艭的艭艭!
位元運算子有四種,分別為
&
、 |
、 ^
、 ~
,其義如下運算子
정의
描述
&
그리고(且)
當兩者為 참 時,結果為 참
|
또는(或)
當兩者其一為 참 時,結果為 참
^^
XOR(互斥OR)
當兩者皆為 참 或 거짓 時,結果為 참
~
NOT(비)
反轉位元
上表在使用前會先轉換成位元(即二進位制)再進行運算
那麼 XOR 的特性是什麼呢?
當條件一與條件二成立時,會回傳
false
條件 A
條件 B
결과
1
1
0
1
0
1
0
1
1
0
0
0
不習慣看 0 1 的朋友,可以參考下表
條件 A
條件 B
결과
진실
진실
거짓
진실
거짓
진실
거짓
진실
진실
거짓
거짓
거짓
使用方式
Console.WriteLine(1 ^ 1); // output: False
Console.WriteLine(1 ^ 0); // output: True
Console.WriteLine(0 ^ 1); // output: True
Console.WriteLine(0 ^ 0); // output: False
Console.WriteLine(true ^ true); // output: False
Console.WriteLine(true ^ false); // output: True
Console.WriteLine(false ^ true); // output: True
Console.WriteLine(false ^ false); // output: False
了解基本概念後,小試身手一下,假設有兩數分別為 2 和 3,Use XOR 運算子會得到的結果是什麼?
一開始先將十進制的數字轉換成二進制
2 → 010
3 → 011
接著對相同位數進行運算
個位 → 0 ^ 1 = 1
十位 → 1 ^ 1 = 0
百位 → 0 ^ 0 = 0
最後得到 001 也就是十進位的 1,神奇吧!
總結從 XOR 看到的東西
所以當一數字 XOR 自己,絕對是 0,當一堆數字進行 XOR 運算,得到的結果會是落單的數字,例如: A ^ B ^ C ^ A ^ B,結果會是落單 C,收!
참조
Boolean logical operators (C# reference)
글 읽어주셔서 감사합니다 🌷 🌻 🌼
마음에 드셨다면 주저말고 하트 꾸욱 눌러주세요❤️
또는 내 GitHub ⭐ 팔로우
또는 커피를 사주세요 ⬇️ 감사합니다.
Reference
이 문제에 관하여(C#용 논리 XOR 연산자(^)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fakestandard/logical-xor-operators-for-c-2dmd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)