কম্পিউটার

C++ এ একজনের পূর্ণসংখ্যার পরিপূরক খুঁজুন


এই বিভাগে, আমরা দেখব কিভাবে একটি পূর্ণসংখ্যার 1 এর সম্পূর্ণ বের করা যায়। আমরা খুব দ্রুত এই কাজটি করতে কমপ্লিমেন্ট অপারেটর ব্যবহার করতে পারি, তবে এটি 32 বিটের পরিপূরক মান (4-বাইপ পূর্ণসংখ্যা) তৈরি করবে। এখানে আমরা n বিট সংখ্যার পরিপূরক চাই।

ধরুন আমাদের একটি সংখ্যা আছে 22। বাইনারি সমতুল্য হল 10110। পরিপূরক মান হল 01001 যা 9 এর সমান। এখন প্রশ্ন আসে, এই মানটি কিভাবে বের করব? প্রথমে আমাদের প্রদত্ত সংখ্যার বিটের সংখ্যা বের করতে হবে। ধরুন গণনাটি c (এখানে c =5 এর জন্য 22)। আমরা 5 1s করতে হবে. সুতরাং এটি হবে 11111। এটি করতে, আমরা 1 বার বাম c সংখ্যায় স্থানান্তর করব, তারপর এটি থেকে 1 বিয়োগ করব। 1 5 বার বামে স্থানান্তরিত করার পরে, এটি 100000 হবে, তারপর 1 বিয়োগ করুন, তাহলে এটি 11111 হবে। এর পরে পরিপূরক পেতে 11111 এবং 10110 দিয়ে XOR অপারেশন করুন।

উদাহরণ

#include <iostream>
#include <cmath>
using namespace std;
int findComplement(int n) {
   int bit_count = floor(log2(n))+1;
   int ones = ((1 << bit_count) - 1);
   return ones ^ n;
}
int main() {
   int number = 22;
   cout << "One's Complement of " << number << " is: " << findComplement(number);
}

আউটপুট

One's Complement of 22 is: 9

  1. C++-এ এক অঙ্কের সংখ্যা

  2. C++ এ একটি দাবাবোর্ডে স্কোয়ারের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. আগের সংখ্যাটি C++ এ 1 এর পরিপূরকের মতো

  4. আগের ছোট পূর্ণসংখ্যার C++ এ এক কম সংখ্যক সেট বিট রয়েছে