Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชั่นในตัวของคอมไพเลอร์ GCC ใน C ++


ในคอมไพเลอร์ 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)

ฟังก์ชันในตัวนี้ใช้เพื่อตรวจสอบความเท่าเทียมกันของตัวเลข หากตัวเลขมีความเท่าเทียมกันแบบคี่ จะส่งกลับค่า จริง มิฉะนั้น จะส่งกลับค่าเท็จ ให้เราดูตัวอย่างของฟังก์ชัน _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)

ฟังก์ชันบิวด์อินนี้ใช้เพื่อนับเลขศูนย์นำหน้าของจำนวนเต็ม 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)

ฟังก์ชันบิวด์อินนี้ใช้เพื่อนับเลขศูนย์ต่อท้ายของจำนวนเต็ม 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