好的,所以我有这段代码:
blah = (26^0)*(1);
System.out.println(blah);
哪个产生输出26,当它应该等于1.我做错了什么?我该怎么做才能解决这个问题?
答案 0 :(得分:15)
我认为你让^
运营商感到困惑。在Java中,^
运算符执行独占或操作。要获得权力,您需要使用Math.pow(a,b)
答案 1 :(得分:3)
在Java中,运算符^
不是取幂,而是bitwise-xor。任何xor 0
本身都是26^0=26
,26*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 Operators和Summary of Operators。您应该使用Math.pow(base,exponent),所以Math.pow(26.0,0.0)如Math api
中所述