কম্পিউটার

সি-তে ফ্লোটিং পয়েন্ট নম্বরে সেট বিটগুলি কীভাবে গণনা করবেন?


এই সমস্যায়, একটি ফ্লোটিং পয়েন্ট মান দেওয়া হয়। আমাদের এটির বাইনারি উপস্থাপনায় সেট বিটের সংখ্যা খুঁজে বের করতে হবে।

উদাহরণস্বরূপ, যদি একটি ফ্লোটিং পয়েন্ট সংখ্যা 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); //count number of characters in the binary equivalent
   int i;
   char *ptr = (char *)&x; //cast the address of variable into char
   int count = 0; // To store the result
   for (i = 0; i < n; i++) {
      count += char_set_bit_count(*ptr); //count bits for each bytes ptr++;
   }
   return count;
}
main() {
   float x = 0.15625;
   printf ("Binary representation of %f has %u set bits ", x, count_float_set_bit(x));
}

আউটপুট

Binary representation of 0.156250 has 6 set bits

  1. পাইথনে বাইনারি রিপ্রেজেন্টেশনে সেট বিটের প্রাইম নম্বর

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

  3. Python List কম্প্রিহেনশন ব্যবহার করে সেট বিট গণনা করুন

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