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 0都是它自己,所以26^0=2626*1=26

于 2011-02-05T04:13:35.093 回答
1

Math.pow(base, exponent)作品。^意思是按位异或

所以,你应该使用:

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

正如前面的回复所说,您实际上是在进行按位异或(结果为 26),然后乘以 1。有关更多信息,请参阅按位和位移运算符和运算符摘要。您应该使用 Math.pow(base, exponent) 所以 Math.pow(26.0, 0.0) 如Math api中所述

于 2011-02-05T04:53:20.550 回答