《Cracking the Coding Interview》——第5章:位操作——题目4
2024-10-21 04:10:52
2014-03-19 06:15
题目:解释(n & (n - 1)) == 0是什么意思?
解法:n&n-1是去掉最低位‘1’的方法。根据运算符优先级,貌似用不着加那个括号,但位运算的优先级总是个模棱两可的东西,所以一般还是要加上的。去掉一个‘1’就成了0,也就是说n是2的整次幂。
代码:
// 5.4 Show what the code "n & (n - 1) == 0" means.
#include <cstdio>
using namespace std; int main()
{
unsigned int n; while (scanf("%u", &n) == ) {
if ((n & n - ) == ) {
printf("%u is a power of 2.\n", n);
} else {
printf("%u is not a power of 2.\n", n);
}
} return ;
}
最新文章
- Windows如何修改MySQL用户root密码
- Android 数据库SQLite 写入SD卡
- [ javascript html Dom image 对象事件加载方式 ] 对象事件加载方式
- Android: 启动init.rc 中service的权限问题【转】
- Struts之ForwardAction
- python-凯撒密码
- 第四-generation音频:互联网智能声音会火
- on方法使用注意事项
- TensorFlow conv2d原理及实践
- hover与click样式冲突
- 平衡二叉树(AVL树)
- iOS TouchID &; FaceID
- 735. Asteroid Collision彗星相撞后的消失数组
- 关于五子棋游戏java版
- phpstorm 2017激活码(方法)
- CustomValidator控件用法
- Spring Boot Application 事件和监听器
- Linux—echo命令
- 【译】Linux概念架构的理解
- 理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU
热门文章
- 154. Find Minimum in Rotated Sorted Array II(Binary search)
- 画X,模拟水题
- Laravel5 构造器高级查询条件写法
- SecureCRT 设置
- Python-程序模块化
- ASP.NET中刷新分页
- django中介模型,CBV模型,及logging日志配制
- java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
- 写一个addEventListener以及removeEventListener
- Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can&#39;t connect to MySql server及1045错误)