码迷,mamicode.com
首页 > 其他好文 > 详细

9.5位操作(四)——解释代码(n&(n-1))==0的具体含义

时间:2015-08-06 13:15:27      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:java   数据结构   算法   位操作   二进制   

题目:解释代码(n&(n-1))==0的具体含义

1)(A&B)==0的含义

A和B的二进制表示的同一位置绝不会同为1

2)n和n-1
若n的最低有效位为1,减去1后为0,其余为均相同,不符合要求。n的最低有效位为0,减去1时,必须向高位借1。

3)(n&(n-1))==0的含义
n的最高有效位为1,其余位为0。因此,n的值是2的某次方。
所以,(n&(n-1))==0检查n是否为2的某次方(或者检查n是否为0

版权声明:本文为博主原创文章,未经博主允许不得转载。

9.5位操作(四)——解释代码(n&(n-1))==0的具体含义

标签:java   数据结构   算法   位操作   二进制   

原文地址:http://blog.csdn.net/shangqing1123/article/details/47314851

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!