কম্পিউটার টিউটোরিয়াল

C-এ ফ্লোটিং পয়েন্ট সংখ্যার সেট বিট গণনা করা


একটি ফ্লোটিং পয়েন্ট সংখ্যার বাইনারি রিপ্রেজেন্টেশনে কতটি সেট বিট (১) আছে তা গণনা করা।

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

C-এ ফ্লোটিং পয়েন্ট সংখ্যার সেট বিট গণনা করা

পদ্ধতি: সংখ্যাটিকে পয়েন্টারে নেওয়া, 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

  1. পাইথনে প্রাইম সেট বিট গণনা (Prime Number of Set Bits)

  2. এক ইন্টিজারের সেট বিটের সংখ্যা গণনা করার পাইথন প্রোগ্রাম

  3. পাইথন লিস্ট কম্প্রিহেনশন ব্যবহার করে সেট বিট কাউন্ট করা

  4. পাইথন প্রোগ্রাম: ১ থেকে n পর্যন্ত সকল সংখ্যার টোটাল সেট বিট গণনা