查找C ++中数字的最高有效位

在这里,我们将查看是否给出了数字,然后如何找到已设置的最高有效位值。该值为2的幂。因此,如果数字为10,则MSB值为8。

我们必须找到MSB的位置,然后找到第k个位置带有置位的数字的值。

示例

#include<iostream>
#include<cmath>
using namespace std;
int msbBitValue(int n) {
   int k = (int)(log2(n));
   return (int)(pow(2, k));
}
int main() {
   int n = 150;
   cout << "MSB bit value is: "<< msbBitValue(n);
}

输出结果

MSB bit value is: 128