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