x&(x-1)可以用来求出x是否为2幂次方数;当&的结果为0时,x原值是2幂次方数,否则就不是2幂次方数;
x=x&(x-1)即把x从低位开始的第一个1改成0.如1000,把1变成0,就是0000.1011,把1变成0,为1010.如果x是2的幂次方,则x中只有高位一个1,此时x-1就是低位全是1,最高位为0,所以为0;
posted on 2017-12-14 18:38 夜的第八章 阅读(473) 评论(0) 编辑 收藏 举报