java - 如何快速计算 2^x?

标签 java bitwise-operators

我正在阅读一篇论文,其中的问题是:“如何快速计算 2 ^ X”? 论文中的建议答案:“1 << X”

当然这似乎不是正确的答案,因为我已经尝试过类似的东西

2 ^ 9 = 11

1 << 9 = 512

想知道 - 谁能想到我在这里缺少什么逻辑或者作者在这里真的错了吗?

最佳答案

我认为您将 2 ^ x 误解为“两个与 x 异或”,而本意可能是 2x。在这种情况下,1 << x是计算 2x 的好方法。不幸的是,在纯文本中键入时,^ 通常用于表示求幂,但在 C、C++ 和 Java 的上下文中,^ 表示 XOR 运算符。 (对于新的 C/C++/Java 程序员来说,这也是一个容易陷入的陷阱!)

希望这对您有所帮助!

关于java - 如何快速计算 2^x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19759539/

相关文章:

c - 在 C 中提取整数(假设 32 位整数)中的 8 个半字节有哪些方法?

java - 在java匿名类中实现这些规则是否有原因

java - java中Byte的宽度是8位是什么意思?

c# - 如何根据这个 Decode 函数制作一个 Encode 函数?

python-3.x - 此除法函数的时间复杂度是多少(未使用除法或乘法运算符)?

binary - 按位运算符 &、|、^ 可以以 10 为底进行计算吗?

java - 存储用户输入的按位运算符的数据类型是什么

Java endWith() 未按预期工作

java - 重用 cucumber 小 cucumber 中的步骤名称

java - 对一个简单的程序进行无害的更改后,性能出现奇怪的下降