Saturday 11 November 2017

C Program that uses Function to return MSB position of unsigned Integer


Code:

#include stdio.h>
#define NUM_BITS_INT 32
int int_msb_position(int n);

void main()
{
    int n, pos;

    printf("Enter a number : ");
    scanf("%d", &n);
    pos = int_msb_position(n);
    printf("\nPosition of MSB bit = %d\n", NUM_BITS_INT - (pos + 1));
}

/* Function to find the MSB bit position */
int int_msb_position(int n)
{
    int i = 0, bit;
    while (i < NUM_BITS_INT)
    {
        bit = n & 0x80000000;
        if (bit == -0x80000000)
           {
            bit = 1;
        }
           if (bit == 1) 
            break;
        n = n << 1;
        i++;
    }
    return i;
}


Output:

Enter a number : 127

Position of MSB bit = 6

Enter a number : 259

Position of MSB bit = 8

Enter a number : 5

Position of MSB bit = 2


More C Programs:











100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...