void exchange(int a, int b) { a ^= b; b ^= a; a ^= b; }
int average(int a, int b) { return (a&b) + ((a^b)>>1); }
!(x&(x-1))
经典位运算
原文:http://blog.csdn.net/psc0606/article/details/44354683