一个表达式判断一个数是否为2^N(2,4,8,16......)

题目:用一个表达式,判断一个数X是否是2^N次方(2,4,8,16,......),不可用循环语句。

解析:2、4、8、16.....的二进制形式是:10、100、1000、10000.如果X减1后与X做与运算,答案若为0,则X是2^N次方。

答案:!(X&(X-1))

注:^为异或操作符.

posted @ 2012-08-23 18:14  xiaolongxia  阅读(184)  评论(0)    收藏  举报