__builtin_popcountll(i) 计算i在二进制中1出现的次数。
__lg(i) 求对数log2(i),且返回值为整数。
bitset<64> a(x); cout<<a.count()<<'\n'; //返回long long类型的X中二进制下有多少个1