程序在C ++中有效地将数字的位反转
在本教程中,我们将讨论一个有效地反转数字位的程序。
为此,我们将给出一个非负数。我们的任务是将数字转换为二进制格式,将数字的二进制位反转。然后最后打印该数字的十进制等效值。
示例
#include <bits/stdc++.h>
using namespace std;
//倒数位
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