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

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

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

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

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

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

实际上:

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

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

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

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

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

标签: C
分享给朋友:

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

Mac OS安装心得

配置我就不说了,我的是Acer 4738G 安装的系统:东皇V3.2 下载地址:http://www.verycd.com/topics/2887773/ 具体安装教程可参照: 《新手windows下安装苹果教程。最详细,最全面,最值得看的教程》http://bbs.pcbeta.com/v...

Protel99SE PCB重复绘制导线

Protel99SE PCB重复绘制导线

Protel99SE PCB中,若相同Net的两个焊盘,默认是只能画一根导线的;或者说有三个相同Net的焊盘,那么只能将两边连起来,而有一边是无法连接起来的,如果你执意要连接,那么另外一边的导线将会自动去除。有没有什么办法重复绘制导线呢? Tools->Preference,将【Automat...

Macbook Pro USB鼠标反应慢

硬件:Macbook Pro(13 英寸,2010 年中) 现象: 1、系统启动很慢,菊花要转很长时间 2、进入Mac系统后,鼠标&键盘均无法操作,只能移动,不能单击(单击无法选中),等十分钟左右,才能正常操作 3、为解决这个问题,尝试用随机盘重装mac系统。重...

WinRAR创建自解压程序

WinRAR创建自解压程序

前面提到了用FilePacker来打包文件夹(http://www.xjtudll.cn/Exp/63/),这次介绍的是用WinRAR来创建自解压程序,从而实现发布单文件程序的目的。当然,你也可以另作他用。WinRAR相当普及,几乎人人电脑上都有。如何用WinRAR创建自解压程序呢?且看下面分解。1...

Xcode:failed to get the task for process XXX 解决办法

问题:     iOS真机调试程序,报如下错误信息:failed to get the task for process XXX 原因: 证书问题,project和target的证书都必须是开发证书,不能用分发证书。 解决方案:     p...

430仿真器安装驱动提示INF找不到所需的段落

430仿真器安装驱动提示INF找不到所需的段落

在安装msp430 USB仿真器驱动程序时,出现问题:在inf中找不到所需段落。 打开setupapi.log(windows目录下)一看,发现是找不到 [ClassInstall32] 段。 找到原因,就知道如何解决了。解决方法如下 1、打开UIF的驱动程序,其下有2个INF文档,umpusb...

发表评论

访客

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