Java错误 - 这个指数我做错了什么?

时间:2011-02-05 04:11:13

标签: java exponential

好的,所以我有这段代码:

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

哪个产生输出26,当它应该等于1.我做错了什么?我该怎么做才能解决这个问题?

4 个答案:

答案 0 :(得分:15)

我认为你让^运营商感到困惑。在Java中,^运算符执行独占或操作。要获得权力,您需要使用Math.pow(a,b)

答案 1 :(得分:3)

在Java中,运算符^不是取幂,而是bitwise-xor。任何xor 0本身都是26^0=2626*1=26

答案 2 :(得分:1)

Math.pow(base, exponent)有效。 ^表示Bitwise-XOR

所以,你应该使用:

blah = Math.pow(26, 0) * 1;
System.out.println(blah);

答案 3 :(得分:0)

正如之前的回复所说,你实际上是在做一个按位XOR(结果为26)然后乘以1.有关详细信息,请参阅Bitwise and Bit Shift OperatorsSummary of Operators。您应该使用Math.pow(base,exponent),所以Math.pow(26.0,0.0)如Math api

中所述