Length of longest consecutive zeroes in the binary representation of a number.

We have a number N. Determine the length of longest consecutive 0’s in its binary representation.

Examples:

Input  : N = 14
Output : 1
Binary representation of 14 is 
1110. There is only one 0 in
the binary representation.

Input : N = 9 
Output : 2


A simple approach is to traverse through all bits and keep track of maximum number of consecutive 0s.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ code to determine Length of 
// longest consecutive zeroes in the
// binary representation of a number. 
#include <bits/stdc++.h>
using namespace std;
  
int maxZeros(int N)
{
    // variable to store the length of
    // longest consecutive 0's
    int maxm = -1;
  
    // to temporary store the consecutive 0's
    int cnt = 0;
  
    while (N) {
        if (!(N & 1)) {
            cnt++;
            N >>= 1;
            maxm = max(maxm, cnt);
        }
        else {
  
            maxm = max(maxm, cnt);
            cnt = 0;
            N >>= 1;
        }
    }
    return maxm;
}
  
// Driver code
int main()
{
    int N = 14;
    cout << maxZeros(N) << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to determine Length of  
// longest consecutive zeroes in the 
// binary representation of a number. 
  
public class GFG {
      
    static int maxZeros(int N) 
    
        // variable to store the length of 
        // longest consecutive 0's 
        int maxm = -1
        
        // to temporary store the consecutive 0's 
        int cnt = 0
        
        while (N != 0) { 
            if ((N & 1) == 0 ) { 
                cnt++; 
                N >>= 1
                maxm = Math.max(maxm, cnt); 
            
            else
        
                maxm = Math.max(maxm, cnt); 
                cnt = 0
                N >>= 1
            
        
        return maxm; 
    
        
    // Driver code
    public static void main(String args[])
    {
         int N = 14
         System.out.println(maxZeros(N)); 
      
    }
    // This Code is contributed by ANKITRAI1
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to determine Length of 
# longest consecutive zeroes in the
# binary representation of a number. 
def maxZeros(N):
  
    # variable to store the length 
    # of longest consecutive 0's
    maxm = -1
  
    # to temporary store the 
    # consecutive 0's
    cnt = 0
    while(N):
        if(not(N & 1)):
            cnt += 1
            N >>= 1
            maxm = max(maxm,cnt)
        else:
            maxm = max(maxm,cnt)
            cnt = 0
            N >>= 1
  
    return maxm
  
# Driver Code
N = 14
print(maxZeros(N))
  
# This code is written by Shrikant13

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to determine Length of 
// longest consecutive zeroes in the 
// binary representation of a number. 
using System;
  
class GFG 
{
static int maxZeros(int N) 
    // variable to store the length 
    // of longest consecutive 0's 
    int maxm = -1; 
  
    // to temporary store the 
    // consecutive 0's 
    int cnt = 0; 
  
    while (N != 0) 
    
        if ((N & 1) == 0 ) 
        
            cnt++; 
            N >>= 1; 
            maxm = Math.Max(maxm, cnt); 
        
        else 
        
            maxm = Math.Max(maxm, cnt); 
            cnt = 0; 
            N >>= 1; 
        
    
    return maxm; 
  
// Driver code
public static void Main()
{
    int N = 14; 
    Console.WriteLine(maxZeros(N)); 
}
}
  
// This code is contributed
// by anuj_67

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP code to determine Length of 
// longest consecutive zeroes in the
// binary representation of a number. 
function maxZeros($N)
{
    // variable to store the length 
    // of longest consecutive 0's
    $maxm = -1;
  
    // to temporary store the 
    // of consecutive 0's
    $cnt = 0;
  
    while ($N
    {
        if (!($N & 1)) 
        {
            $cnt++;
            $N >>= 1;
            $maxm = max($maxm, $cnt);
        }
        else 
        {
            $maxm = max($maxm, $cnt);
            $cnt = 0;
            $N >>= 1;
        }
    }
    return $maxm;
}
  
// Driver code
$N = 14;
echo (maxZeros($N));
  
// This code is contributed 
// by Shivi_Aggarwal
?>

chevron_right


Output:

1


My Personal Notes arrow_drop_up

Maths is the language of nature

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.