如何判断一个数是否是2的幂

我想创建一个函数,它接受一个数字并检查这个数字是否是 2 的幂。比如:fn(0) 是否,fn(1) 是是,fn(2) 是是,fn(3) 是否
等等...我试图创建一个像 power(N,K,R) 这样的幂函数,但是如果我问像 power(2,_,8) 这样的东西,这不起作用。任何帮助将不胜感激。

回答

如果我们使用 prolog,我们可以这样做:

pow2(X) :- X > 0 , 0 is X / (X-1).

/是按位与。所以 ifX是二的幂,它看起来像1000...0二进制,因此X-1is111...1和按位 AND 因此是0。很明显,这只发生在 2 的幂上。

在线试试吧!


以上是如何判断一个数是否是2的幂的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>