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

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

xjtudll14年前 (2011-08-27)技术心得7730

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

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

若一个正整数是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的幂” 的相关文章

使用ML610Q407模拟仿真ML610Q473

使用ML610Q407模拟仿真ML610Q473

ML610Q473号称是Flash型,本质只是MTP(Multiple Time Programmable),可重复擦写次数80次左右。在开发阶段,如果像51一样,每次都烧录程序看结果,时间不长IC就挂了。ML610Q473自身是不能作为仿真芯片直接仿真的,需要用ML610Q407来模拟仿真。 1、...

WinClone更新了

WinClone,Mac下备份Windows系统的好软件。可以克隆BootCamp分区安装的Windows,也可以将克隆文件安装到BootCamp分区。 之前已经写过一篇WinClone备份还原Windows的简易教程:http://xjtudll.cn/Exp/171/ 基本上来说,使用还是较简单...

金蝶K3老单原生字段设置必录

修改单据模板ICTemplate里对应的字段 select * from ICTemplate where FCaption like '%部门%' and FID = 'D01' 修改FMustInput字段,改为1,即true,则为必录...

金蝶 在任务单序时簿直观查看关键件领用套数解决方案

金蝶 在任务单序时簿直观查看关键件领用套数解决方案

目前生产任务单序时簿无法很直观地查看领料套数,而标准报表《任务单领料明细表》需每一种物料都要领料才能统计出领料套数但大部分情况下,非关键件物料采用倒冲领料或者集中领料,以致于该报表无法使用。 备注:已领套数=生产任务单对应投料单的分录行的[已领数量/单位用量的最小值,但是不包括计划投料数量是0的投...

Qt无法定位程序输入点

Qt无法定位程序输入点

       Qt发布程序的时候,运行exe文件(位于release文件夹),提示Qt无法定位程序输入点于动态链接库QtCore4.dll上,如图所示。   碰到这个问题,当然第一件事是在\Qt\2009.05...

Windows Server 2008 R2上搭建ShadowSocks服务

Shadowsocks是一个轻量级隧道Socks5代理,可加密网络通道。 1、下载nodejs     首先要进入https://nodejs.org/,点击页面上的INSTALL安装相对应的node环境。 2、安装nodejs   &...

发表评论

访客

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