当前位置:首页 > 技术心得 > 正文内容

如何判断一个正整数是不是2的幂

xjtudll15年前 (2011-08-27)技术心得11860

估计用递归的方法大家都知道,就不赘述了

这里使用一个更简单的方法。

若一个正整数是2的幂,则这个数在计算中的表示肯定是以下形式:0x00...1000...B省略号表示若干个0.问题就转变为一个等价的命题:如何判断给定的一个正整数是如0x00...1000...B这种形式(二进制表示式中只有唯一的一个1)。(B表示是以二进制表示的)

实际上:

如果一个数n是2的幂,则满足 n & (n-1) = 0。

举个特例,如n = 8,即0x1000,则0x1000 & 0x0111 = 0。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/192/

标签: C
分享给朋友:

“如何判断一个正整数是不是2的幂” 的相关文章

ios 获取应用程序的名称和版本号

.wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertical-align: -10%;-webkit-user-select: none;} .wiz-to...

navigationController的pushViewController无效问题

参考资料:http://www.cocoachina.com/ask/questions/show/52842 我觉得这个问题很有代表性,尤其是小白,所以将重点内容摘抄过来了。 问题及操作过程: 1、新建一个 single View Application,会自动给我生成一个带xib的文件,就是默认...

SQL Server CLR常见错误

1.发布报错:执行 CREATE ASSEMBLY 时失败,因为该程序集是为公共语言用户时的不受支持的版本生成的 SQL SERVER 2008R2 不支持.net4.0, 需要把项目改成.net3.5 部署成功了 2.执行sql报错:禁止在 .NET Framework 中执行用户代码。启用...

BOM各层级计算真实用量

BOM各层级计算真实用量

SELECT * FROM ( select 级别='1',A='A1',B='B1',用量='1',B真实用量='' UNION ALL select 级别='2',A='B1',B='C1',用量='2',B真实用量='' UNION ALL select 级别='3',A='C1...

iPad2插电循环重启,无法充电

老爷机iPad2最近发疯了: 1、不插充电器 无法开机; 2、插上普通充电器,木有反应; 3、插上专用的5V,2.1A充电器,有时可开机,但一会儿就关机了。然后又自动开机。循环往复。 经过分析,初步确定是电池有问题(机子本身无进水无维修) 可以参考下面的讨论: https://discussions...

Xcode Warning: The Copy Bundle Resources build phase contains this target's Info.plist file

Xcode Warning: The Copy Bundle Resources build phase contains this target's Info.plist file

问题: 编译时,提示The Copy Bundle Resources build phase contains this target's Info.plist file 原因: Info.plist被添加到了Copy Bundle Resources里,原因不明。如图所示: 解决...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。