1

さて、私はこのコードを手に入れました:

blah = (26^0)*(1);
System.out.println(blah);

1に等しいはずの出力26を生成するのはどれですか。何が間違っていますか? これを修正するにはどうすればよいですか?

4

4 に答える 4

15

あなたは^オペレーターを混乱させていると思います。Java では、^演算子は排他的論理和演算を行います。力を得るには、使用する必要がありますMath.pow(a,b)

于 2011-02-05T04:15:07.243 に答える
3

Java では、演算子^は累乗ではなく、ビットごとの xor です。なんでもxor 0それ自体なので26^0=2626*1=26

于 2011-02-05T04:13:35.093 に答える
1

Math.pow(base, exponent)動作します。Bitwise -XOR^を意味します。

したがって、次を使用する必要があります。

blah = Math.pow(26, 0) * 1;
System.out.println(blah);
于 2011-02-05T04:20:00.893 に答える
0

前の回答が言ったように、実際にはビット単位の XOR (結果は 26) を実行してから 1 を乗算しています。詳細については、ビット単位およびビット シフト演算子と演算子の概要を参照してください。Math.pow(base, exponent) を使用する必要があるため、Math APIで説明されているように Math.pow(26.0, 0.0) を使用する必要があります

于 2011-02-05T04:53:20.550 に答える