231-2的幂

给定一个整数,编写一个函数来判断它是否是 2 的幂次方。

这道题很巧妙,如果一个数字是 2 的幂次方的话,那么它的二进制表示中肯定只有一位是1,想到这就可以用与运算来计算。

举个栗子:8的二进制表示为1000 ,8-1 = 7的二进制表示为0111,那么 8&7 = 0 会把 8 的二进制表示从右到左第一个1置为0。利用这个判断数字的二进制表示是否只有一位为1即可。还有要判断负数和0!!!

你可能感兴趣的:(231-2的幂)