How to find the length of the longest consecutive zeroes in the binary representation of a number in C

1 Answer

0 votes
#include <stdio.h>

// Function to find the longest sequence of consecutive zeroes in binary representation
int longestConsecutiveZeroes(int n) {
    int maxCount = 0, currentCount = 0;

    while (n > 0) {
        if ((n & 1) == 0) { // Check if the least significant bit is 0
            currentCount++;
            // Use ternary operator instead of std::max
            maxCount = (currentCount > maxCount) ? currentCount : maxCount;
        } else {
            currentCount = 0; // Reset count when a 1 is encountered
        }
        n >>= 1; // Right shift the number
    }

    return maxCount;
}

int main() {
    int num = 11298; // 0010 1100 0010 0010

    printf("Longest consecutive zeroes: %d\n", longestConsecutiveZeroes(num));

    return 0;
}


/*
run:

Longest consecutive zeroes: 4

*/

 



answered Sep 14, 2025 by avibootz
...