Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การหาความเท่าเทียมกันของจำนวนอย่างมีประสิทธิภาพใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมค้นหาความเท่าเทียมกันของตัวเลข

เราสามารถหาความเท่าเทียมกันของตัวเลขได้อย่างมีประสิทธิภาพโดยดำเนินการดังต่อไปนี้โดยใช้ 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น