ในปัญหานี้ เราได้รับค่าจำนวนเต็มสองค่า งานของเราคือสร้างโปรแกรม c เพื่อดำเนินการ สำหรับทุกชุดบิตของตัวเลขสลับบิตอื่นๆ
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input: 3 7 Output: 4 Binary of 3: 011 Binary of 3: 111
บิตที่หนึ่งและสองของตัวเลขที่สองถูกพลิกซึ่งทำให้เป็น 100 เช่น 4
แนวทางการแก้ปัญหา
แนวทางในการแก้ปัญหาคือดำเนินการ XOR ของตัวเลขทั้งสอง ผลลัพธ์จะถูกสลับเป็นบิตที่บิตของ I'st คือ 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