GCC বিল্ট-ইন ফাংশনগুলো
GCC কম্পাইলার কিছু বিশেষ বিল্ট-ইন ফাংশন সরবরাহ করে যা অপ্টিমাইজড এবং হার্ডওয়্যার-লেভেল অপারেশন সম্পাদন করে।
1. __builtin_popcount(x)
ইন্টিজারের বাইনারি রিপ্রেজেন্টেশনে কতগুলো 1 আছে তা গণনা করে।
int n = 13; // 1101
cout << __builtin_popcount(n); // আউটপুট: 3
2. __builtin_parity(x)
বাইনærি রিপ্রেজেন্টেশনে 1 এর সংখ্যা বিজোড় (odd) কিনা চেক করে। বিজোড় হলে ১ (true), জোড় হলে ০ (false) রিটার্ন করে।
int n = 13; // 1101 (three 1's -> odd)
cout << __builtin_parity(n); // আউটপুট: 1
3. __builtin_clz(x)
Count Leading Zeros - ইন্টিজারের শুরুতে কতগুলো শূন্য আছে গণনা করে (৩২-বিট ইন্টিজার ধরে)।
int n = 13; // 000...0001101
cout << __builtin_clz(n); // আউটপুট: 28
4. __builtin_ctz(x)
Count Trailing Zeros - ইন্টিজারের শেষে কতগুলো শূন্য আছে গণনা করে।
int n = 12; // 1100
cout << __builtin_ctz(n); // আউটপুট: 2
ব্যবহার: এই ফাংশনগুলো কম্পিটিটিভ প্রোগ্রামিং এবং লো-লেভেল অপ্টিমাইজেশনে খুব দ্রুত কাজ করে।