二进制操作
C++中存在一些关于二进制位的操作
返回a和b的最大公约数
int a=6,b=9;
__gcd(a,b);
输出结果为
print("3");
返回二进制位中1的个数
int a=6;
__builtin_popcount(a);
输出结果为
print("6")
输出从右往左第一个有效位的位置(最低有效位)
int a=6;
__builtin_ffs(a);
输出结果为
print("2");
输出该类型所占比特数位数减去a所占有的有效位数
int a=6;
__builtin_clz(a);
输出结果为
print("29");
最后一个有效二进制(即“1”)后面的0的个数
int a=6;
__builtin_ctz(a);
输出结果为
print("1");
标签:__,输出,技巧,int,二进制位,builtin,print,比赛
From: https://www.cnblogs.com/txxhyzhh/p/18178702