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