文字間のJava非可逆のXOR

MegaZeroX:

私は排他的論理和が「適切」のJavaにおける文字の間で行われることになっているかどうかはわかりません。私が見てきた他の人がこれを行うが、私は簡単なようなものを持っているときのように:

char a = 'a';
char b = 'b';
char c = (char) a ^ b;

私は、コンパイルエラーに「charへのint型から可能な非可逆変換」を取得します。私はint型は、このコンテキストに持ち込まれているかどうかはわかりません。

GBlodgett:

あなたが使用する場合^char、操作がで行われているcharのint型の値。

そのための演算子の優先順位、鋳造が前に来ます^

それがコンパイルされること、この手段

((char) a) ^ b

鋳造が最初に来るので、への昇進はint、最後起こり、あなたが代入しようとするだろうintchar

あなたは括弧を使用します:

char c = (char) (a ^ b);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=199670&siteId=1