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

发布于 2024-10-16 03:21:33 字数 136 浏览 5 评论 0原文

好吧,我有这段代码:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小糖芽 2024-10-23 03:21:33

我认为您混淆了 ^ 运算符。在 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 use Math.pow(a,b)

不回头走下去 2024-10-23 03:21:33

在 Java 中,运算符 ^ 不是求幂,而是按位异或。任何 xor 0 都是其本身,因此 26^0=2626*1=26

In Java, the operator ^ is not exponentiate, but rather bitwise-xor. Anything xor 0 is itself, so 26^0=26, 26*1=26

缺⑴份安定 2024-10-23 03:21:33

Math.pow(base, exponent) 有效。 ^ 表示 按位异或

所以,你应该使用:

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

Math.pow(base, exponent) works. The ^ means Bitwise-XOR.

So, you should use:

blah = Math.pow(26, 0) * 1;
System.out.println(blah);
倾城花音 2024-10-23 03:21:33

正如前面的回复所说,您实际上是在执行按位异或(结果为 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文