Java错误 - 我在做什么错这个指数?
问题描述:
好吧,所以我有这段代码:Java错误 - 我在做什么错这个指数?
blah = (26^0)*(1);
System.out.println(blah);
它产生输出26,当它应该等于1,什么是我做错了什么?我能做些什么来解决这个问题?
答
我想你是混淆^
运营商。在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);
答
正如前面的答复说你实际上是做一个按位异或(导致26),然后乘以1见Bitwise and Bit Shift Operators和Summary of Operators获取更多信息。你应该使用Math.pow(base,exponent),所以Math.pow(26.0,0.0)如Math api
中所述。我该如何取幂? – adammenges 2011-02-05 04:15:26