একটি সংখ্যার সমতা সেই সংখ্যাটির বাইনারি সমতুল্য 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