किसी संख्या की समता उस संख्या के बाइनरी समकक्ष में मौजूद 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