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 ;
}

最新文章

  1. Windows如何修改MySQL用户root密码
  2. Android 数据库SQLite 写入SD卡
  3. [ javascript html Dom image 对象事件加载方式 ] 对象事件加载方式
  4. Android: 启动init.rc 中service的权限问题【转】
  5. Struts之ForwardAction
  6. python-凯撒密码
  7. 第四-generation音频:互联网智能声音会火
  8. on方法使用注意事项
  9. TensorFlow conv2d原理及实践
  10. hover与click样式冲突
  11. 平衡二叉树(AVL树)
  12. iOS TouchID &amp; FaceID
  13. 735. Asteroid Collision彗星相撞后的消失数组
  14. 关于五子棋游戏java版
  15. phpstorm 2017激活码(方法)
  16. CustomValidator控件用法
  17. Spring Boot Application 事件和监听器
  18. Linux—echo命令
  19. 【译】Linux概念架构的理解
  20. 理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU

热门文章

  1. 154. Find Minimum in Rotated Sorted Array II(Binary search)
  2. 画X,模拟水题
  3. Laravel5 构造器高级查询条件写法
  4. SecureCRT 设置
  5. Python-程序模块化
  6. ASP.NET中刷新分页
  7. django中介模型,CBV模型,及logging日志配制
  8. java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
  9. 写一个addEventListener以及removeEventListener
  10. Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can&#39;t connect to MySql server及1045错误)