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

โปรแกรมเพื่อสลับบิตของตัวเลขอย่างมีประสิทธิภาพใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่จะแปลงบิตของตัวเลขอย่างมีประสิทธิภาพ

สำหรับสิ่งนี้เราจะได้ตัวเลขที่ไม่เป็นลบ งานของเราคือการแปลงตัวเลขในรูปแบบไบนารี กลับบิตไบนารีของตัวเลข แล้วสุดท้ายก็พิมพ์เลขทศนิยมให้เท่ากัน

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
//inverting bits of number
int invert_bit(int n){
   int x = log2(n) ;
   int m = 1 << x;
   m = m | m - 1;
   n = n ^ m;
   return n;
}
int main(){
   int n = 17;
   cout << invert_bit(n) << endl;
   return 0;
}

ผลลัพธ์

14