231-2的幂

2019-04-18  本文已影响0人  不胖二十斤不改名zz

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读