একটি ফ্লোটিং পয়েন্ট সংখ্যার বাইনারি রিপ্রেজেন্টেশনে কতটি সেট বিট (১) আছে তা গণনা করা।
উদাহরণ: 0.15625-এর বাইনারি রিপ্রেজেন্টেশনে ৬টি সেট বিট আছে। সাধারণত সিঙ্গেল প্রিসিশন (৩২-বিট) ফরম্যাট ব্যবহার হয়।

পদ্ধতি: সংখ্যাটিকে পয়েন্টারে নেওয়া, char*-এ কাস্ট করা, প্রতিটি বাইট প্রসেস করা, এবং প্রতিটি বাইটের সেট বিট গণনা করা।
উদাহরণ কোড
#include <stdio.h>
int char_set_bit_count(char number) {
unsigned int count = 0;
while (number != 0) {
number &= (number - 1);
count++;
}
return count;
}
int count_float_set_bit(float x) {
unsigned int n = sizeof(float) / sizeof(char);
char *ptr = (char*)&x;
int count = 0;
for (int i = 0; i < n; i++) {
count += char_set_bit_count(*ptr);
ptr++;
}
return count;
}
int main() {
float x = 0.15625;
printf("Binary representation of %f has %u set bits", x, count_float_set_bit(x));
return 0;
}
আউটপুট
Binary representation of 0.156250 has 6 set bits