Q:

# C program to find the position of MSB bit of an unsigned integer number

Read an integer number from the user, then find the position of MSB of an unsigned integer number using C program.

Program:

The source code to find the position of the MSB bit of an unsigned integer number is given below. The given program is compiled and executed using GCC compile on UBUNTU 18.04 OS successfully.

``````// C program to find the position of MSB bit of
// an unsigned integer number

#include <stdio.h>

int GetMsbPos(unsigned int num)
{
int cnt = 0;

while (num) {
cnt++;
num = num >> 1;
}

return cnt - 1;
}

int main()
{
unsigned int num = 0;
int pos = 0;

printf("Enter Number: ");
scanf("%d", &num);

pos = GetMsbPos(num);
printf("Position of MSB bit is: %d\n", pos);

return 0;
}``````

Output:

```RUN 1:
Enter Number: 127
Position of MSB bit is: 6

RUN 2:
Enter Number: 2
Position of MSB bit is: 1

RUN 3:
Enter Number: 65535
Position of MSB bit is: 15
```

Explanation:

In the above program, we created two functions GetMsbPos() and main().  The GetMsbPos() function return the position of MSB in an unsigned integer number.

In the main() function, we read an integer number from the user and then we found the position of MSB in an unsigned integer number using GetMsbPos() function and return the result to the main() function. After that, we printed the result on the console screen.