Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 숫자의 최상위 세트 비트 찾기

<시간/>

여기서 숫자가 주어지면 설정되어 있는 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