Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 GCC 컴파일러의 내장 함수

<시간/>

GCC 컴파일러에는 몇 가지 내장 함수가 있습니다. 이러한 기능은 아래와 같습니다.

함수 _builtin_popcount(x)

이 내장 함수는 정수형 데이터에서 1의 개수를 세는 데 사용됩니다. _builtin_popcount() 함수의 예를 살펴보겠습니다.

예시

#include<iostream>
using namespace std;
int main() {
   int n = 13; //The binary is 1101
   cout << "Count of 1s in binary of "<< n <<" is " << __builtin_popcount(n);
   return 0;
}

출력

Count of 1s in binary of 13 is 3

함수 _builtin_parity(x)

이 내장 함수는 숫자의 패리티를 확인하는 데 사용됩니다. 숫자에 홀수 패리티가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. _builtin_parity() 함수의 예를 살펴보겠습니다.

예시

#include<iostream>
using namespace std;
int main() {
   int n = 13; //The binary is 1101
   cout << "Parity of "<< n <<" is " << __builtin_parity(n);
   return 0;
}

출력

Parity of 13 is 1

함수 _builtin_clz(x)

이 내장 함수는 정수의 선행 0을 계산하는 데 사용됩니다. clz는 Count Leading Zeros의 약자입니다. _builtin_clz() 함수의 예를 살펴보겠습니다.

예시

#include<iostream>
using namespace std;
int main() {
   int n = 13; //The binary is 1101
   //0000 0000 0000 0000 0000 0000 0000 1101 (32bit integer )
   cout << "Leading zero count of "<< n <<" is " << __builtin_clz(n);
   return 0;
}

출력

Leading zero count of 13 is 28

함수 _builtin_ctz(x)

이 내장 함수는 정수의 후행 0을 계산하는 데 사용됩니다. ctz는 Count Trailing Zeros의 약자입니다. _builtin_ctz() 함수의 예를 살펴보겠습니다.

예시

#include<iostream>
using namespace std;
int main() {
   int n = 12; //The binary is 1100
   //0000 0000 0000 0000 0000 0000 0000 1100 (32bit integer )
   cout << "Trailing zero count of "<< n <<" is " << __builtin_ctz(n);
   return 0;
}

출력

Trailing zero count of 12 is 2