6 int PopCount(
int n) {
return __builtin_popcount(n); }
9 int PopCount(ll n) {
return __builtin_popcountll(n); }
12 int Parity(
int n) {
return __builtin_parity(n); }
15 int Parity(ll n) {
return __builtin_parityll(n); }
18 int TopBit(
int n) {
return n ? 31-__builtin_clz(n) : -1; }
21 int TopBit(ll n) {
return n ? 63-__builtin_clzll(n) : -1; }
24 int BitLength(
int n) {
return n ? 32-__builtin_clz(n) : 1; }
27 int BitLength(ll n) {
return n ? 64-__builtin_clzll(n) : 1; }
30 int LowBit(
int n) {
return n ? __builtin_ctz(n) : -1; }
33 int LowBit(ll n) {
return n ? __builtin_ctzll(n) : -1; }
39 ll
Mask(
int n) {
return (1LL<<n)-1; }
42 bool HasBit(ll n,
int i) {
return (n>>i&1); }
49 for(
int i=0; i<len; i++) ret+=
HasBit(n
,rev?len-1-i:i
)?
'1':
'0';