^はXORですね。「Excelと間違えました」だって。 Excelは累乗ですね。 実際はもっと複雑な計算の中で、値もそこそこ変わるし、気付かなかった・・
class test{
public static void main(String[] arg){
int i = getval(5);
System.out.println(i);
}
private static int getval(int i){
return i^2;
}
}
演算子の代わりに
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Math.html#pow(double, double)
Math.pow の引数 double 型って書いてるのに int 型のリテラルとかぶち込んでも大丈夫だった…結果は double 型になってしまうけど、引数周りの暗黙の型変換ってやってくれたんだっけか ?
あと << 1 は 2 乗じゃなくて 2 倍(Overflow しない限りにおいては)ね。
累乗演算子がないから Java は苦労する…2 乗するだけなら
i*iで済むけど、3 乗とか 4 乗とかなるときついよね。