一个表达式判断一个数是否为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))
注:^为异或操作符.
题目:用一个表达式,判断一个数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))
注:^为异或操作符.