How to check if all the bits of a given integer are one in C

1 Answer

0 votes
#include <stdio.h>
#include <stdbool.h>
 
bool all_bits_are_one(unsigned int n) {
    while (n > 0) {
        if ( (n & 1) == 0) {
            return false;
        }
        n = n >> 1;
    }
 
    return true;
}
 
 
int main() {
 
    unsigned int n = 28; // 00011100
 
    if (all_bits_are_one(n)) {
        printf("All bits are 1\n");
    }
    else {
        printf("Not all bits are 1\n");
    }
    
    n = 15; // 1111
 
    if (all_bits_are_one(n)) {
        printf("All bits are 1\n");
    }
    else {
        printf("Not all bits are 1\n");
    }
}
 
 
 
 
/*
run:
 
Not all bits are 1
All bits are 1
 
*/

 



answered May 16, 2023 by avibootz
edited Dec 20, 2023 by avibootz

Related questions

2 answers 189 views
1 answer 126 views
2 answers 216 views
1 answer 122 views
1 answer 123 views
1 answer 211 views
...