GCC内置位运算
__builtin_parity (unsigned int)
奇偶校驗,判斷二進制1的個數是奇數返回1,偶數返回0
int n = 7; int m = 15; cout << "n = " << n << " " << __builtin_parity(n) << endl; // 輸出 1 cout << "m = " << m << " " << __builtin_parity(m) << endl; // 輸出 0__builtin_popcount (unsigned int)
二進制1的個數
int n = 7; int m = 15; cout << "n = " << n << " " << __builtin_popcount(n) << endl; // 輸出 3 cout << "m = " << m << " " << __builtin_popcount(m) << endl; // 輸出 4__builtin_ffs (unsigned int)
二進制最后1的位置
int n = 1; int m = 4; cout << "n = " << n << " " << __builtin_ffs(n) << endl; // 輸出 1 cout << "m = " << m << " " << __builtin_ffs(m) << endl; // 輸出 3__builtin_ctz (unsigned int)
二進制末尾0的個數
int n = 1; int m = 4; cout << "n = " << n << " " << __builtin_ctz(n) << endl; // 輸出 0 cout << "m = " << m << " " << __builtin_ctz(m) << endl; // 輸出 2__builtin_clz (unsigned int)
二進制前導0的個數
int n = 1; int m = 4; cout << "n = " << n << " " << __builtin_clz(n) << endl; // 輸出 31 cout << "m = " << m << " " << __builtin_clz(m) << endl; // 輸出 29總結
- 上一篇: 2019牛客暑期多校训练营(第五场)F
- 下一篇: 2019牛客暑期多校训练营(第六场)C