1. ホーム
  2. java

0を1に変える、またはその逆を行う最もエレガントな方法

2023-10-08 07:50:52

質問

次のことを行うための最もエレガントな方法は何でしょうか。

int i = oneOrZero;

if (i == 0) {
   i = 1;
} else {
   i = 0;
}

とすることができます。 i は1か0の値しか持たないと考えてよいでしょう。

どのように解決するのですか?

i ^= 1;

XOR を 1 とすることで、両方の方法が得られます。 0 <--> 1 を反転させる必要がある場合に備えて)。

0 ^ 1 = 1
1 ^ 1 = 0