JAVAで有限フィールドを実装しようとしていますが、2つの2進数をXORする必要があります。ここ は私のコードです:XORがJAVAで予期せぬ出力を出す
String lastdigits="1000110";
int overflow=11;
int lastdigitsint=Integer.parseInt(lastdigits);
int result=(int) lastdigitsint^overflow;
変数「オーバーフロー」の値が11
です。 オーバーフロー(= 11)でlastdigitsintをXORするとき、出力は1000101になるはずです。ただし、コードは1095を出力しています。
これはなぜ起こっているのか説明できますか?ありがとうございました。
この例を簡略化し、ハードコードされた値 –
を提供することができます。私はStackOverflowを初めて使うので、ここでもルールを学んでいます。ガイダンスをありがとう! – kudesiaji
また、最小限のコードを編集しました。はい、IntelliJでデバッグしましたが、正しい値が変数lastdigitsおよびoverflowに格納されていることを確認しています。 – kudesiaji