さて、私はこのコードを手に入れました:
blah = (26^0)*(1);
System.out.println(blah);
1に等しいはずの出力26を生成するのはどれですか。何が間違っていますか? これを修正するにはどうすればよいですか?
さて、私はこのコードを手に入れました:
blah = (26^0)*(1);
System.out.println(blah);
1に等しいはずの出力26を生成するのはどれですか。何が間違っていますか? これを修正するにはどうすればよいですか?
あなたは^
オペレーターを混乱させていると思います。Java では、^
演算子は排他的論理和演算を行います。力を得るには、使用する必要がありますMath.pow(a,b)
Java では、演算子^
は累乗ではなく、ビットごとの xor です。なんでもxor 0
それ自体なので26^0=26
、26*1=26
Math.pow(base, exponent)
動作します。Bitwise -XOR^
を意味します。
したがって、次を使用する必要があります。
blah = Math.pow(26, 0) * 1;
System.out.println(blah);
前の回答が言ったように、実際にはビット単位の XOR (結果は 26) を実行してから 1 を乗算しています。詳細については、ビット単位およびビット シフト演算子と演算子の概要を参照してください。Math.pow(base, exponent) を使用する必要があるため、Math APIで説明されているように Math.pow(26.0, 0.0) を使用する必要があります