How to remove the lowest order bit in C++

1 Answer

0 votes
#include <iostream>

void print_bits(int n, int size) {
    for (int i = 1 << (size - 1); i > 0; i = i / 2) {
        (n & i) ? std::cout << "1" : std::cout << "0";
    }
}
   
int main(void)
{
    int n = 2664;
      
    print_bits(n, 16);
    std::cout << "\n";
      
    n &= (n - 1);
    print_bits(n, 16);
}
    
  
   
   
/*
run:
  
0000101001101000
0000101001100000
   
*/

 



answered Apr 5, 2024 by avibootz

Related questions

1 answer 164 views
1 answer 147 views
147 views asked Apr 5, 2024 by avibootz
1 answer 99 views
99 views asked Apr 6, 2024 by avibootz
1 answer 115 views
1 answer 120 views
120 views asked Apr 5, 2024 by avibootz
1 answer 163 views
1 answer 170 views
...