二進位制操作
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");