How to extract the last N bits of a 32-bit unsigned integer in C++

1 Answer

0 votes
#include <iostream>

void print_bits(unsigned int n, int size) {
    for (unsigned int i = 1 << (size - 1); i > 0; i = i / 2) {
        (n & i) ? std::cout << "1" : std::cout << "0";
    }
}

int get_last_N_bits(int number, int N) {
    int mask = (1 << N) - 1;
         
    return number & mask;
}

int main() {
    unsigned int number = 441; // 00000001101-11001
    int N = 5;
     
    print_bits(number, 16);
    std::cout << "\n";
     
    int lastNbits = get_last_N_bits(number, N);
     
    print_bits(lastNbits, 16);
}


  
  
  
    
/*
run:
    
0000000110111001
0000000000011001
    
*/

 



answered Dec 22, 2023 by avibootz
edited Dec 22, 2023 by avibootz

Related questions

1 answer 147 views
1 answer 154 views
1 answer 134 views
1 answer 132 views
1 answer 121 views
1 answer 147 views
1 answer 133 views
...