0

「今日のインタビューの質問」を読んだ後、私はxor演算に関するなじみのないプログラミング構文に出くわしました。誰かが実行時に何が起こっているのかを説明できますか?

result = 2;
out.println(result ^= 10);    // This gives a result of 8.

result = 3;
out.println(result ^= 10);    // This gives a result of 9.

result = 4;                   
out.println(result ^= 10);    // This gives a result of 14.

私はこれを理解するのに苦労しています...

4

1 に答える 1

0

これはビット単位のXOR演算子と呼ばれます。比較されるビットのいずれかが1の場合は1です。両方が1の場合、または両方が0の場合、結果は0になります。実際には、比較している数値のBITレベルで機能しています。

例:

0010 ^= (XOR) 1010 = 1000
(2)  ^=       (10) = (8)

0011 ^= (XOR) 1010 = 1001
(3)  ^=       (10) = (9)

0100 ^= (XOR) 1010 = 1110
(4)  ^=       (10) = (14)
于 2012-10-14T10:00:08.427 に答える