你首先|

2c237c6

园龄:1年4个月粉丝:2关注:0

判断是否为2的幂

一个式子:

n > 0 && (n & -n) == n

在C++中,表达式 n > 0 && (n & -n) == n 是用来检查一个整数 n 是否为2的幂。

让我逐步解释这个表达式的含义:

  1. n > 0:首先,这个条件确保 n 是一个正整数,即大于零。
  2. (n & -n):这是一个位操作,使用了按位与(AND)运算符。 -n 表示 n 的二进制补码的相反数。 (n & -n) 的结果是 n 的二进制表示中最右边的 1 所对应的位。这意味着只有当 n 是2的幂时,(n & -n) 的结果才等于 n
  3. (n & -n) == n:最后,这个条件检查 (n & -n) 的结果是否等于 n。如果相等,那么说明 n 是2的幂;否则,n 不是2的幂。

因此,通过这个表达式,我们可以判断一个正整数 n 是否为2的幂。

本文作者:2c237c6

本文链接:https://www.cnblogs.com/27dCnc/p/18568684

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   2c237c6  阅读(9)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起