Java 错误 - 我对这个指数做错了什么?
好吧,我有这段代码:
blah = (26^0)*(1);
System.out.println(blah);
它产生输出 26,而它应该等于 1。我做错了什么?我可以做什么来解决这个问题?
Alright so I've got this piece of code:
blah = (26^0)*(1);
System.out.println(blah);
Which produces the output 26, when it should be equal to 1. What am I doing wrong? What can I do to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我认为您混淆了
^
运算符。在 Java 中,^
运算符执行异或运算。要获得幂,您需要使用Math.pow(a,b)
I think you're confusing the
^
operator. In Java, the^
operator does an exclusive-or operation. To get a power, you need to useMath.pow(a,b)
在 Java 中,运算符
^
不是求幂,而是按位异或。任何xor 0
都是其本身,因此26^0=26
、26*1=26
In Java, the operator
^
is not exponentiate, but rather bitwise-xor. Anythingxor 0
is itself, so26^0=26
,26*1=26
Math.pow(base, exponent)
有效。^
表示 按位异或。所以,你应该使用:
Math.pow(base, exponent)
works. The^
means Bitwise-XOR.So, you should use:
正如前面的回复所说,您实际上是在执行按位异或(结果为 26),然后乘以 1。请参阅 按位和位移运算符 和 运算符摘要了解更多信息。您应该使用 Math.pow(base, exponent) 所以 Math.pow(26.0, 0.0) 如 数学 API
As the previous responses said you are actually doing a bitwise XOR (which results in 26) and then multiplying by 1. See Bitwise and Bit Shift Operators and Summary of Operators for more info. You should be using Math.pow(base, exponent) so Math.pow(26.0, 0.0) as described in the Math api