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

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

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

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

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

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

金蝶K3提示:拒绝的权限

金蝶K3提示:拒绝的权限

http://blog.sina.com.cn/s/blog_c0ee51310102yyy0.html 在服务器上做了如下操作: 1、关闭掉中间层服务器的数据执行保护:cmd运行窗口输入 bcdedit.exe /set nx AlwaysOff ,重启生效。 2、在中间层服务器上打开控制面板&r...

itunes connect上传截图提示无法载入文件

itunes connect上传屏幕快照时,老提示“无法载入文件,请再试一次”。 可以肯定:图片格式和尺寸没问题。而且如果这俩有问题的话,会有相关提示的。 原因:文件名包含中文。 另外路径有中文没关系!...

IIS配置允许下载APK文件

IIS配置允许下载APK文件

MIME类型:application/vnd.android.package-archive...

Proteus网络标号自动加一

Proteus网络标号自动加一

在原理图界面,按A(切换到英文输入法),弹出如下窗口: 将PROPERTY=VALUE改成net=P0#,那么网络标号就会从P00开始自动加一,如图所示。...

OKI单片机——ML610Q4XX 看门狗

OKI单片机——ML610Q4XX 看门狗

/***********************************************/ * @brief 看门狗初始化 * @details * @param[in] Time :看门狗复位时间 /********************************************...

Warning: xx pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone IV E Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems

Warning: xx pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For more information, refer to AN 447: Interfacing Cyclone IV E Devices with 3.3/3.0/2.5-V LVTTL/LVCMOS I/O Systems

问题描述: Cyclone IV EP4CE6E22C8N Quartus II编译 每次编译完,都有个warning: Warning: xx pins must meet Altera requirements for 3.3-, 3.0-, and 2.5-V interfaces. For...

发表评论

访客

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