解释代码((n & (n-1))== 0)的含义
2024-08-31 15:56:52
思路:初步查看很难一眼分析出表达式是什么含义,我们不妨举例分析一下,假设 n = 5,二进制表示为101,那么 n-1 = 4,二进制表示为100, 5 & 4 = 101 & 100 = 100 = 4 != 0,下面我们来看更多的例子
& = & =
& = & =
& = & =
& = & =
我们会发现要使表达式等于0,n-1必须使得n的n-1都向高位进1,也就是说满足一下条件:
x + = n
x & n =
我们来看看有那些数能满足要求:
& = -------^
& = -------^
& = -------^
& = -------^
。。。。。。
所谓代码((n & (n-1))== 0)的含义是n满足2的n次方
这种问题一般在于考察分析和解决问题的能力。
最新文章
- ejoy2d源码阅读笔记1
- linux权限管理
- 如何通过iframe以post方式提交form表单
- NOJ 1643 阶乘除法(YY+小技巧)
- HDU 4498 Function Curve (分段, simpson)
- 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)
- ADO.NET 扩展属性、配置文件 和 对战游戏
- 500. Keyboard Row
- Docker控制组
- CSS常见兼容问题以及解决办法
- Aes加解密,php
- zabbix在ubuntu16.04上的安装
- ST算法(倍增)(用于解决RMQ)
- Java并发编程笔记之ConcurrentLinkedQueue源码探究
- Java并发编程_wait/notify和CountDownLatch的比较(三)
- Dell灵越 5559笔记本安装固态硬盘 BIOS设置
- java基础-day21
- windows zend_guard+apache no ssl+php no Thread Safe fastcgi模式 环境配置
- Overcoming Life's Obstacles - ASC 2017 March 03
- spark读取mongodb数据写入hive表中