如果一个数是2^n,说明这个二进制里面只有一个1。除了1.

a  = (10000)b

a-1 = (01111)b

a&(a-1) = 0。

如果一个数不是2^n,

说明它的二进制里含有多一个1。

a = (1xxx100)b

a-1=(1xxx011)b

那么 a&(a-1)就是 (1xxx000)b,

而不会为0。

所以可以用这种方法判断一个数是不2^n。

最新文章

  1. jQuery-easyui实现关闭全部tabs
  2. Coding编译连接过程中遇到的问题及解决方法(iOS)
  3. linux框架之ibus
  4. HTML番外整理
  5. git push --no-thin
  6. MySQL 授权详解
  7. 单电机板机模型,f22
  8. 关闭归档提示:ORA-38774: cannot disable media recovery - flashback database is enabled
  9. 关于Android开发的几点建议
  10. linq中给字段添加别名
  11. python selenium中Excel数据维护(二)
  12. 【移动端】icon中ng-cordova使用
  13. Struts2 框架使用 核心以及其他详细配置
  14. The logback manual #01# Introduction
  15. Java并发编程_wait/notify和CountDownLatch的比较(三)
  16. vux (scroller)上拉刷新、下拉加载更多
  17. 33.NET对加密和解密的支持
  18. [Android] osx下如何使用SublimeText阅读Android系统源码
  19. 【BZOJ4553】[Tjoi2016&Heoi2016]序列 cdq分治+树状数组
  20. 微服务:spring-cloud-archaius 起步

热门文章

  1. jsp导出Excel功能的实现
  2. python os用法笔记
  3. 审计参数 audit_trail
  4. [phonegap]安装phonegap
  5. 《30天自制操作系统》07_day_学习笔记
  6. Swift实战-豆瓣电台(六)视图跳转,传参及回跳
  7. Lintcode: Rehashing
  8. SQL 2008 数据库只读 修改
  9. [编辑] 分享一些java视频
  10. Android使用ZXing生成带图片的二维码