How to get the highest order set bit of a number in C

1 Answer

0 votes
#include <stdio.h>

#define INT_SIZE sizeof(int) * 8 

int main() {
    int number = 173; // 10101101
    int highest_order_bit = -1;

    for (int i = 0; i < INT_SIZE; i++) {
        if ((number >> i) & 1)
            highest_order_bit = i;
    }
    
    if (highest_order_bit != -1)
        printf("%d\n", highest_order_bit);
    else 
        printf("0");
}


/*
run:

7

*/

 



answered Mar 31, 2019 by avibootz

Related questions

1 answer 134 views
1 answer 93 views
1 answer 170 views
1 answer 164 views
1 answer 132 views
1 answer 178 views
1 answer 127 views
...