判断一个数是不是2的n次幂...时间:2023-01-08 15:40:35判断一个数是不是2的n次幂。 设要判断的数是无符号整数X。 首先判断X是否为0,如果为0则不是2的n次幂,返回。 X和X-1进行按位与操作,如果结果是0,则说明这个数是2的n次幂;如果结果非0,则说明这个数不是2 的n次幂。 证明: 如果是2的n次幂,则此数用二进制表示时只有一位是1,其它都是0。减1后,此位变成0,后面的位变成1,所以按位与后结果是0。 如果不是2的n次幂,则此数用二进制表示时有多位是1。减1后,只有最后一个1变成0,前面的 1还是1,所以按位与后结果不是0。 原文链接:http://hi.baidu.com/mianshiti/blog/item/2e4e56cc5f86c631f8dc61a0.html