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

1 Answer

0 votes
#include <iostream>

using namespace std;

#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)
        cout << highest_order_bit;
    else
        cout << "0";
}


/*
run:

7

*/

 



answered Apr 1, 2019 by avibootz

Related questions

1 answer 182 views
1 answer 164 views
1 answer 92 views
1 answer 170 views
1 answer 132 views
1 answer 178 views
1 answer 127 views
...