2的n次幂
2024-10-08 16:18:38
位运算判断2的n次幂:
举个栗子,n = 8;则二进制表示就为1000,n-1则为 0111 取&刚好等于0
嘿嘿,巧妙吧。
再举个栗子,n = 7; 则二进制为 0111,n-1则为0110 取&则不为0
嘿嘿,也没问题,不过这个算法仅限于无符号数。
bool is_power_of_2(unsigned long n)
{
return (n != && ((n & (n - )) == ));
}
顺便说一下如何判断2的倍数,其实很明显,把奇数转成二进制后,最后一位一定是1,所以只需要判断一下 n & 1就行了
学习不易,诸君共勉!
最新文章
- Npoi导出Excel 实战篇(Webform)
- void 关键字
- Android笔记:获取屏幕信息
- 关于禁止ipad的home键解决方法
- OpenGL开发环境配置-Windows/MinGW/Clion/CMake
- HashSet与HashMap、Hashtable
- django 常用命令
- 自定义UITableViewCell时, 使用autoLayout, 无法很好的做到屏幕适配
- centos之tomcat安装
- hdu1075What Are You Talking About (字典树)
- Windows Phone开发(25):启动器与选择器之WebBrowserTask
- .NET MVC通过反射获取数据修
- [USACO11NOV]牛的障碍Cow Steeplechase
- 如何使用git 发布源码到CodePlex
- Python打印乘法口诀表
- OC中成员属性 成员变量
- C#模板设计模式使用和学习心得
- vmware vcsa-6.5 网络架构之虚拟机的标准交换机
- android_安装包_NoClassDefFoundError
- File的方法
热门文章
- 「Luogu P1383 高级打字机」
- [mjpeg @ ...] unable to decode APP fields: Invalid data found when processing input
- jmeter学习笔记一foreach控制器
- 网络协议-webService协议
- PAT B1019/A1069 数字黑洞
- Hadoop入门概念
- Day2-K-Red and Black-HDU1312
- 前端学习笔记系列一:10整体移动vscode代码块、VSCode 使用 stylus,配置格式化设置、在vue项目中引入bootstrap
- ROS-3 : Catkin工作空间和ROS功能包
- Vue-cli3与springboot项目整合打包