ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่จะแปลงบิตของตัวเลขอย่างมีประสิทธิภาพ
สำหรับสิ่งนี้เราจะได้ตัวเลขที่ไม่เป็นลบ งานของเราคือการแปลงตัวเลขในรูปแบบไบนารี กลับบิตไบนารีของตัวเลข แล้วสุดท้ายก็พิมพ์เลขทศนิยมให้เท่ากัน
ตัวอย่าง
#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