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

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

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

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

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

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

C# 将程序添加开机启动的三种方式

原文:https://blog.csdn.net/arrowzz/article/details/69808761 前言 最近在研究程序随系统启动,发现在 win7 上因为权限的问题,写注册表的时候总是会出现问题,写不进去导致的不能自动启动,随后决定仔细的看一看这方面的问题。 查资料过程中主要发现有...

Windows7画图调整橡皮擦大小

Windows7画图调整橡皮擦大小

Windows7自带的画图软件,如何调整橡皮擦大小呢? 方法1:选中橡皮擦 ,在菜单栏找到“粗细”,选中不同的宽度即可。如下图所示。但是这个方法有个缺点,如果要将橡皮擦调整到很小的宽度,则没法实现。 例如,想使用1px的橡皮擦,怎么办? 这个时候就要用到方法2了。 方法2:...

Android Warning: Converting to string: TypedValue …

参考资料:   http://stackoverflow.com/questions/4903948/android-resources-converting-to-string-typedvalue-warning   问题:   切换activity...

Win7在此处打开命令窗口

Win7在此处打开命令窗口

有时候会用到命令行 但是每次都要cd,太麻烦 后来发现居然可以用shift+右键,就会弹出来“在此处打开命令窗口”。...

OSX:如何移动NSWindow而同时不移动其子Window

参考资料: http://stackoverflow.com/questions/7657132/how-to-move-an-nswindow-without-moving-child-nswindows 问题: 应用程序有个主window,在主window里,新建了一个子window。 每当移动...

密勒定理及密勒效应

密勒定理及密勒效应

1、密勒定理 如图1所示的二端口网络(two-port network)中,Vin为输入电压,Vout为输出电压,Zf为Vin与Vout之间的桥接阻抗,A为Vin与Vout之间的闭环增益(A>0,正相放大;A<0,反相放大),且A的输入阻抗为无穷大,输出阻抗为零,则图1电路与图2电...

发表评论

访客

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