কম্পিউটার

একটি নম্বরের প্যারিটি চেক


একটি সংখ্যার সমতা সেই সংখ্যাটির বাইনারি সমতুল্য 1 এর সংখ্যার উপর ভিত্তি করে। যখন বর্তমান 1s এর গণনা বিজোড় হয়, তখন এটি বিজোড় সমতা প্রদান করে, 1s এর একটি জোড় সংখ্যার জন্য এটি জোড় সমতা প্রদান করে।

যেহেতু আমরা জানি যে কম্পিউটার মেমরিতে সংখ্যাগুলি বাইনারি সংখ্যায় সংরক্ষিত থাকে, তাই আমরা সহজেই সংখ্যাগুলি পরিবর্তন করতে পারি। এই ক্ষেত্রে, বিটগুলি স্থানান্তর করার মাধ্যমে, আমরা প্রদত্ত সংখ্যার বাইনারি সমতুল্য 1 এর উপস্থিত সংখ্যা গণনা করব।

ইনপুট এবং আউটপুট

Input:
A number: 5
Binary equivalent is (101)
Output:
Parity of 5 is Odd.

অ্যালগরিদম

finParity(n)

ইনপুট: সংখ্যা n.

আউটপুট: সংখ্যাটির জোড় সমতা বা বিজোড় সমতা আছে তা পরীক্ষা করুন৷

Begin
   count := 0
   temp := n

   while temp >= 2, do
      if temp has 1 as LSb, then
         count := count + 1
      temp := right shift temp for 1 bit
   done

   if count is odd number, then
      display it is odd parity
   else
      display even parity
End

উদাহরণ

#include <iostream>
using namespace std;

bool findParity(int n) {
   int count = 0;
   int temp = n;

   while (temp>=2) {
      if(temp & 1)    //when LSb is 1, increase count
         count++;
      temp = temp >> 1;    //right shift number by 1 bit
   }      
   return (count % 2)?true:false;
}

int main() {
   int n;
   cout << "Enter a number: "; cin >>n;
   cout << "Parity of " << n << " is " << (findParity(n)?"Odd":"Even");
}

আউটপুট

Enter a number: 5
Parity of 5 is Odd

  1. একটি নম্বর একটি কৃষ্ণমূর্তি নম্বর কিনা তা C++ এ পরীক্ষা করুন

  2. একটি সংখ্যা C++ এ ফুল প্রাইম কিনা তা পরীক্ষা করুন

  3. একটি সংখ্যা C++ এ অন্য একটি সংখ্যার শক্তি কিনা তা পরীক্ষা করুন

  4. একটি সংখ্যা C# এ 2 এর শক্তি কিনা তা কীভাবে পরীক্ষা করবেন?