/* * C Program that uses Function to return MSB position of unsigned Integer */ #include #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; }