C++中GCC编译器的内置函数

在 GCC 编译器中有一些内置函数。这些功能如下所示。

功能 _builtin_popcount(x)

此内置函数用于计算整数类型数据中 1 的数量。让我们看一个_builtin_popcount()函数的例子。

示例

#include<iostream>
using namespace std;
int main() {
   int n = 13; //二进制是 1101
   cout << "二进制的 1 计数 "<< n <<" is " << __builtin_popcount(n);
   return 0;
}
输出结果
二进制的 1 计数 13 is 3

功能 _builtin_parity(x)

此内置函数用于检查数字的奇偶校验。如果数字有奇偶校验,则返回真,否则返回假。让我们看一个_builtin_parity()函数的例子。

示例

#include<iostream>
using namespace std;
int main() {
   int n = 13; //二进制是 1101
   cout << "奇偶校验 "<< n <<" is " << __builtin_parity(n);
   return 0;
}
输出结果
奇偶校验 13 is 1

功能 _builtin_clz(x)

此内置函数用于计算整数的前导零。clz 代表计数前导零。让我们看一个_builtin_clz()函数的例子。

示例

#include<iostream>
using namespace std;
int main() {
   int n = 13; //二进制是 1101
   //0000 0000 0000 0000 0000 0000 0000 1101(32位整数)
   cout << "前导零计数 "<< n <<" is " << __builtin_clz(n);
   return 0;
}
输出结果
前导零计数 13 is 28

功能 _builtin_ctz(x)

此内置函数用于计算整数的尾随零。ctz 代表计数尾随零。让我们看一个_builtin_ctz()函数的例子。

示例

#include<iostream>
using namespace std;
int main() {
   int n = 12; //二进制是 1100
   //0000 0000 0000 0000 0000 0000 0000 1100(32位整数)
   cout << "尾随零计数 "<< n <<" is " << __builtin_ctz(n);
   return 0;
}
输出结果
尾随零计数 12 is 2