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

Here, we are going to learn how to find the position of MSB bit of an unsigned integer number in C programming language?
Submitted by Nidhi, on July 24, 2021

Problem statement

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

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

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.

C Bitwise Operators Programs »

Related Programs

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.