여기서 숫자가 주어지면 설정되어 있는 Most Significant Bit 값을 찾는 방법을 알아보겠습니다. 값은 2의 거듭제곱입니다. 따라서 숫자가 10이면 MSB 값은 8이 됩니다.
MSB의 위치를 찾은 다음 k번째 위치에서 set-bit로 숫자의 값을 찾아야 합니다.
예시
#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