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

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

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

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

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

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

如何扩展SyntaxHighlighter

    在做这个工作之前,你需要对JavaScript有比较深入的了解,尤其需要熟悉正则表达式。如果网络已经存在你需要拓展的加亮库,那就不用自己搞了,直接选用。另外,如果你需要拓展的语言跟已经存在的加亮库类似,那么可以修改它。比如,C51是在C上扩展而成,所以我们可以选...

SQL Server 2012 自动增长列,值跳跃问题(自增增加1000)【转载】

SQL Server 2012 自动增长列,值跳跃问题(自增增加1000)【转载】

介绍从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的。如果数据类型是 整型(int),那么跳跃值为 1000;如果数据类型为 长整型(bigint),那么跳跃值为 10000。从我们...

MOS-N 场效应管 双向电平转换电路 -- 适用于低频信号电平转换的简单应用

MOS-N 场效应管 双向电平转换电路 -- 适用于低频信号电平转换的简单应用

如上图所示,是N沟道MOSFET双向电平转换电路。 双向传输原理: 为了方便讲述,定义 3.3V 为 A 端,5.0V 为 B 端。 A端输出低电平时(0V),MOS管导通,B端输出是低电平(0V); A端输出高电平时(3.3V),MOS管截至,B端输出是高电平(5V);...

金蝶K3中用户组和用户的权限导入导出

金蝶K3中用户组和用户的权限导入导出

帐套管理-帐套-用户引入引出...

解决IIS 不能下载.exe.config文件的方法

解决IIS 不能下载.exe.config文件的方法

  问题: 做了一个winform自动升级功能,通过http协议下载更新,发现每次得到的config文件字节都是0 原因: config文件默认不能通过浏览器下载。 分析及解决办法: Config文件是web的配置文件,默认是不允许下载的,就算在MIME中配置“applicat...

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

CSDN、博客园文章图片无法复制粘贴的办法(不需要脚本)

本质就是利用浏览器的阅读器模式1、使用Edge浏览器在网址前面加read://例如:原网址:https://blog.csdn.net/qq_57139623/article/details/134045280阅读器模式:read://https://blog.csdn.net/qq_5713962...

发表评论

访客

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