ホームページ >Java >&#&チュートリアル >XOR 演算子を理解する: コンピューティングにおける強力なツール
XOR 演算子 (Exclusive OR の略) は、コンピューター サイエンス、数学、デジタル ロジックの基本概念です。多くのプログラミング言語では記号 ^、数学表記では ⊕ で表される XOR は、暗号化、データ構造、アルゴリズムなどのさまざまなアプリケーションで広く使用されている論理演算です。この投稿では、XOR 演算子の仕組み、そのプロパティ、実際の応用について説明します。
XOR 演算子は 2 つのバイナリ入力を比較し、入力が 異なる、および の場合は true (1) を返します。 false (0) 入力が同じ。それは簡単な真理値表に要約できます:
Input A | Input B | A XOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
XOR 演算子は、一方の入力が true の場合にのみ true を返し、両方の入力は true ではないため、"排他的 OR" と呼ばれることがよくあります。
アイデンティティ プロパティ:
自己反転プロパティ:
可換性:
結合性:
キャンセル:
プログラミングにおける XOR の最も一般的な用途の 1 つは、他のすべての要素が 2 回出現する配列内で一意の要素を見つけることです。
public int findUnique(int[] nums) { int result = 0; for (int num : nums) { result ^= num; // XOR all elements } return result; // The unique number remains }
これは、 x ⊕ x = 0 のように、重複する数値が相殺されるため機能します。
XOR を使用すると、追加の変数を必要とせずに 2 つの数値を交換できます。
int a = 5, b = 10; a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("a: " + a + ", b: " + b); // Output: a: 10, b: 5
これがどのように機能するかを段階的に説明します:
XOR 演算子は、平文とキーを組み合わせて暗号文を生成するために暗号化で頻繁に使用されます。 XOR は可逆的 (A ⊕ B) ⊕ B = A であるため、安全な暗号化と復号化が保証されます。
// Simple XOR Encryption public String xorEncrypt(String message, char key) { char[] encrypted = new char[message.length()]; for (int i = 0; i < message.length(); i++) { encrypted[i] = (char) (message.charAt(i) ^ key); } return new String(encrypted); }
LeetCode のこの問題。
XOR を使用して問題を解決できます。
s = "abcd" と t = "abcde" のような 2 つの文字列があり、その差分を返すと想像してください。
public char findTheDifference(String s, String t) { char result = 0; for (int i = 0; i < s.length(); i++) { result ^= s.charAt(i); } for (int i = 0; i < t.length(); i++) { result ^= t.charAt(i); } return result; }
XOR は効率的であり、必要な計算リソースは最小限です。ビット レベルで動作するため、暗号化やエラー検出などのタスクを他の多くの方法よりも高速に実行できます。そのユニークな特性により、コンピューティングにおけるさまざまな問題を解決するための多用途ツールとなります。
XOR 演算子は、コンピューティングと数学における強力で多用途のツールです。その特性と用途を理解することで、それを活用して効率的なアルゴリズムを作成し、複雑な問題を解決し、低レベルの操作の理解をさらに高めることができます。アルゴリズムを最適化する場合でも、暗号化を探索する場合でも、XOR はプログラミング ツールボックスに不可欠な部分です。
以上がXOR 演算子を理解する: コンピューティングにおける強力なツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。