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

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

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

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

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

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

SSCOM无法保存窗口数据到文本文件

SSCOM无法保存窗口数据到文本文件

使用环境: Win7 64bit SSCOM 3.2 问题: “保存窗口”功能无效,每次都是提示error 如下图所示: 原因: 相应的目录根本不存在,请看错误窗口。 目录SAVE2017/3实际上并不存在,软件也没有自动新建该目录 解决办法: 在SSCOM同级目录下,新建...

Quartus II计数器仿真:31之后变成字符

Quartus II计数器仿真:31之后变成字符

计数器波形仿真,在执行到31时会突然变成[] ! 之类的符号。如图: 原因: 信号的显示格式选择成了ASCII码,当数值等于ASCII码符号区的时候就会显示为符号了。 解决办法: 1、选择要显示的信号,右键,属性(Properties) 2、将显示格式改成自己所需的,一般是Hexadecimal...

金蝶 报废/补料是否会参与倒冲领料

金蝶 报废/补料是否会参与倒冲领料

产品入库倒冲领料单没有考虑报废补料数量,一般领料时则会考虑。此种情况可以通专过【报废倒冲领属料】的功能生成【生产领料单】。 请按下列方法步骤操作: 1、登录K/3主控台,依次单击【生产管理】→【生产任务管理】→【生产物料报废/补料】,双击【生产物料报废/补料单-维护】; 2、打开...

Win7 64bit安装usb blaster驱动

Win7 64bit安装usb blaster驱动

前面我就不讲了,直接到驱动搜索这一步。如下: 选择第二项“浏览计算机以查找驱动程序软件”; 关键步骤到了,很容易出错,导致无法安装成功 在下图中一定要将驱动程序位置设置为 “D:\altera\90\quartus\drivers\usb-blaster...

Qt无法定位程序输入点

Qt无法定位程序输入点

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

iPhone下xib转成iPad的xib

iPhone下xib转成iPad的xib

参考文献:http://blog.csdn.net/kmyhy/article/details/7715397 在Xcode 3中,将xib从iPhone版转变为iPad版,通过Create iPad Version菜单。 但在Xcode 4及Xcode5中,这个菜单找不到了。但是可以通过其...

发表评论

访客

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