c++位运算函数之 __builtin_

1.__builtin_popcount(unsigned int n) 
该函数是判断n的二进制中有多少个1

int n = 15; //二进制为1111
cout<<__builtin_popcount(n)<

2.__builtin_parity(unsigned int n) 
该函数是判断n的二进制中1的个数的奇偶性

int n = 15;//二进制为1111
int m = 7;//111
cout<<__builtin_parity(n)<

3.__builtin_ffs(unsigned int n) 
该函数判断n的二进制末尾最后一个1的位置,从一开始

int n = 1;//1
int m = 8;//1000
cout<<__builtin_ffs(n)<

4.__builtin_ctz(unsigned int n) 
该函数判断n的二进制末尾后面0的个数,当n为0时,和n的类型有关

int n = 1;//1
int m = 8;//1000
cout<<__builtin_ctzll(n)<

5. __builtin_clz (unsigned int x) 
返回前导的0的个数。

你可能感兴趣的:(STL)