如何快速计算2 ^ x?

Hem*_*ant 1 java bitwise-operators

我正在读一篇文章,问题是:"你怎么能快速计算2 ^ X"?建议的答案:"1 << X"

当然,这似乎不是正确的答案,因为我尝试过这样的事情

2 ^ 9 = 11

1 << 9 = 512

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

tem*_*def 11

我认为你误解了2 ^ x意味着"两个XORed与x",而意图可能是2 x.在这种情况下,1 << x是计算2 x的好方法.不幸的是,在输入纯文本时,^通常用于表示取幂,但在C,C++和Java的上下文中,^表示XOR运算符.(它也是新C/C++/Java程序员的一个简单陷阱!)

希望这可以帮助!