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

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

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

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

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

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

用visualbox中的android系统替换android sdk自带的模拟器

用visualbox中的android系统替换android sdk自带的模拟器

如何在visualbox中安装android X86,此处不表。 修改虚拟机设置。 关闭运行的虚拟机,选中“设置----网络”,将连接方式设置为“host-only adapter”;在“高级--控制芯片”中选择“P...

LCD基本常识

1、LCD的玻璃厚度有1.1mm、0.7mm、0.55mm和0.4mm,成品总厚度分别为2.8mm、2.0mm、1.7mm和1.4mm,如果是FSTN产品,那么总厚度需要再增加0.1mm。 2、LCD的视角范围,STN产品视角范围最大,HTN产品次之,TN产品视角范围最小。对于多路产品,如果路数大于...

再谈无线网络受限——无法获得IP地址

前面曾经写了一篇[无线网络连接受限]的解决办法(http://xjtudll.cn/Exp/66/),本次再谈一些这方面的内容。上次无线网络受限导致的结果就是:无线网卡无法获得IP地址,即便信号很好,也一直连不上。上次最后的解决办法是用WEP加密方式,后来在网上看到WPA2-PSK加密方式更为安全,...

Protel99SE PCB各层的含义

本文收集于网络,整理而成,原文作者未知。 我们在进行印制电路板设计前,第一步就是要选择适用的工作层。Protel 99 SE提供有多种类型的工作层。只有在了解了这些工作层的功能之后,才能准确、可靠地进行印制电路板的设计。 Protel 99 SE所提供的工作层大致可以分为7类:Signal La...

利用Doxygen生成CHM文件

利用Doxygen生成CHM文件

准备工作:安装HTML Help Workshop。微软官网有安装包提供。 基本配置就不讲了,与生成Html文件类似。请参考:http://xjtudll.cn/Exp/243/ 下面讲特殊配置。 1、Wizard->Output HTML->prepare for compressed...

Android MultiSelectListPreference, java.lang.String cannot be cast to java.util.Set

问题及现象: 尝试添加一个 MultiSelectListPreference到设置界面,MultiSelectListPreference基本代码如下: <MultiSelectListPreference android:title="@string/title" an...

发表评论

访客

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