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

สำหรับทุกชุดบิตของตัวเลขสลับบิตอื่นใน C++


ในปัญหานี้ เราได้รับค่าจำนวนเต็มสองค่า งานของเราคือสร้างโปรแกรม 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