【发布时间】:2011-03-05 07:43:27
【问题描述】:
可能的重复:
Query about working out whether number is a power of 2
How to check if a number is a power of 2
我需要这个原型的函数体:
bool isPOT(int x);
所以它会返回例如 isPOT(3) = FALSE,但 isPOT(8) = TRUE
什么是最漂亮/简洁的算法?什么是最有效的?
PS:我很惊讶我在 SO 上找不到这个问题,所以我完全期待有人能检测到一些重复。
PPS:有人可以创建 POT、NPOT、Power-Of-Two 标签吗?
【问题讨论】:
-
为什么需要二次幂标签?!
-
奇怪的是我在输入标题时没有看到匹配项,我想可能是因为我使用了 'two' 而不是 '2'
-
@user470379:对于底层工作/优化(尤其是图形)POT和NPOT是常用的缩写
标签: c algorithm bit-manipulation