シンボル(^)で表される排他的またはJava Bitオペレーターと呼ばれるオペレーターがあります。操作ルールは次のとおりです。2つのオペランドのビットのうち、結果が1になる場合は0です。2つのオペランドのビットが同じ場合、結果が異なる場合は結果が1になります。以下の例を見てみましょう。
public class testxor {public static void main(string [] args){int i = 15、j = 2; system.out.println( "i ^ j =" +(i ^ j));}}}操作結果は次のとおりです。i^j = 13。
上記のプログラムの分析、i = 15をバイナリに変換するIS 1111、j = 2をバイナリIS 0010に変換し、XORの操作規則に従って1101を取得し、それを10進数に変換することは13です。
このルールを使用して、特定のアルゴリズムを柔軟に適用できます。たとえば、2k+1の数値があり、そのうちの2kが同じである場合、次のような異なる数値を見つける必要があります。2、3、4、4、3、5、6、6、5。
public class testxor {public static void main(string [] args){int [] array = {2,3,4,4,3,5,6,6,5}; int v = 0;結果は次のとおりです。1回だけ表示される数は2です。
XOR演算子のルールを使用して、数字と0がXORまたは自分自身であり、数字と自分がXORまたは自分であるという原則を取得します。
上記の計算方法:V = 2^3^4^4^3^5^6^6^6^5;
交換法と上記の規則に従って
一度しか表示されない数値は出力(同じ前提条件の2kを満たす必要があります)
要約します
上記は、JavaのXOR問題のコード分析に関するこの記事のすべての内容です。誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!