ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมค้นหาความเท่าเทียมกันของตัวเลข
เราสามารถหาความเท่าเทียมกันของตัวเลขได้อย่างมีประสิทธิภาพโดยดำเนินการดังต่อไปนี้โดยใช้ xor และ กะขวา โอเปอเรเตอร์
int b; b = n ^ (n >> 1); b = b ^ (b >> 2); b = b ^ (b >> 4); b = b ^ (b >> 8); b = b ^ (b >> 16);
หากบิตสุดท้ายของผลลัพธ์คือ 1 แสดงว่าเป็นพาริตีคี่ อย่างอื่นมีความเท่าเทียมกัน
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h>
using namespace std;
void findParity(int n) {
int b;
b = n ^ (n >> 1);
b = b ^ (b >> 2);
b = b ^ (b >> 4);
b = b ^ (b >> 8);
b = b ^ (b >> 16);
if ((b & 1) == 0) {
cout << "Even Parity" << endl;
}
else {
cout << "Odd Parity" << endl;
}
}
int main() {
int n = 15;
findParity(n);
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
Even Parity
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น