二进制相关
ll s=12;
//传入参数会转换为unsigned int(如果是long long在函数名后加 "ll")
cout<<__builtin_ffs(s)<<endl; //右起第一个1的位置
cout<<__builtin_clz(s)<<endl; //左侧0的个数
cout<<__builtin_ctz(s)<<endl; //右侧0的个数
cout<<__builtin_popcount(s)<<endl; //1的个数
cout<<__builtin_parity(s)<<endl; //1的个数的奇偶性 (奇1偶0)