思路:初步查看很难一眼分析出表达式是什么含义我们不妨举例分析一下,假设 n = 5二进制表示为101,那么 n-1 = 4二进制表示为100, 5 & 4 = 101 & 100 = 100 = 4 != 0下面我们来看更多的例子
我们会发现要使表达式等于0,n-1必须使得n的n-1都向高位进1,也就是说满足一下条件:
我们来看看有那些数能满足要求:
所谓代码((n & (n-1))== 0)的含义是n满足2的n次方
这种问题一般在于考察分析和解决问题的能力
思路:初步查看很难一眼分析出表达式是什么含义我们不妨举例分析一下,假设 n = 5二进制表示为101,那么 n-1 = 4二进制表示为100, 5 & 4 = 101 & 100 = 100 = 4 != 0下面我们来看更多的例子
我们会发现要使表达式等于0,n-1必须使得n的n-1都向高位进1,也就是说满足一下条件:
我们来看看有那些数能满足要求:
所谓代码((n & (n-1))== 0)的含义是n满足2的n次方
这种问题一般在于考察分析和解决问题的能力
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录
拍照搜题秒出答案,一键查看所有搜题记录