用一个表达式,判断一个数X是否是2的n次方(2,4,8,16...),不可以用循环语句。

时间:2021-08-26 22:36:15

从程序员面试宝典看到的题目,觉得非常好,很有启发,故载之。

2、4、8、16这样的数转化成二进制是10、100、1000、10000,如果X减1后与X做与运算结果是0,则表明X是2的n次方。

!(X&(X-1))