ในปัญหานี้ เราได้รับค่าจำนวนเต็มสองค่า งานของเราคือการสร้างโปรแกรม C++ เพื่อดำเนินการ "สำหรับทุกบิตที่ตั้งค่าของตัวเลขหนึ่ง ให้สลับบิตของอีกตัวหนึ่ง"
ตัวอย่างเพื่อเข้าใจปัญหา
Input: 3 7 Output: 4 Binary of 3: 011 Binary of 7: 111
บิตที่หนึ่งและบิตที่สองของตัวเลขที่สองถูกสลับ ทำให้กลายเป็น 100 ซึ่งเท่ากับ 4
วิธีการแก้ปัญหา
วิธีหนึ่งในการแก้ปัญหาคือการดำเนินการ XOR ของตัวเลขทั้งสอง ผลลัพธ์จะเป็นการสลับบิตที่บิตของตัวเลขแรกเป็น 1 โดยใช้การดำเนินการ XOR
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int main() {
int a = 3, b = 7;
cout << "The numbers are " << a << " & " << b << endl;
cout << "The result of flipping bits is " << (a ^ b);
return 0;
}
ผลลัพธ์
The numbers are 3 & 7 The result of flipping bits is 4