Java - Long numberOfLeadingZeros() method



Description

The Java Long numberOfLeadingZeros() method returns the number of zero bits preceding the highest-order ("leftmost") one-bit in the two's complement binary representation of the specified long value.

It returns 32 if the specified value has no one-bits in its two's complement representation, in other words if it is equal to zero.

Declaration

Following is the declaration for java.lang.Long.numberOfLeadingZeros() method

public static int numberOfLeadingZeros(long i)

Parameters

i − This is the long value.

Return Value

This method returns the number of zero bits preceding the highest-order ("leftmost") one-bit in the two's complement binary representation of the specified long value, or 32 if the value is equal to zero.

Exception

NA

Example 1

The following example shows the usage of Long numberOfLeadingZeros() method to get the number of zero bits preceding the highest-order one bit. We've created a long variable and assigned it a positive long value. Then using toBinaryString() method, we're printing the binary format of the value. Using bitCount(), we're printing the one bits count. Using highestOneBit() we're printed the top order bit. Using lowestOneBit(), we're printing the lowest bit and then value of zero bits preceding the highest-order one bit is printed using numberOfLeadingZeros() method.

package com.tutorialspoint;
public class LongDemo {
   public static void main(String[] args) {
      long i = 170L;
      System.out.println("Number = " + i);
    
      /* returns the string representation of the unsigned long value 
         represented by the argument in binary (base 2) */
      System.out.println("Binary = " + Long.toBinaryString(i));

      // returns the number of one-bits 
      System.out.println("Number of one bits = " + Long.bitCount(i));

      /* returns an long value with at most a single one-bit, in the position 
         of the highest-order ("leftmost") one-bit in the specified long value */
      System.out.println("Highest one bit = " + Long.highestOneBit(i));

      /* returns an long value with at most a single one-bit, in the position
         of the lowest-order ("rightmost") one-bit in the specified long value.*/
      System.out.println("Lowest one bit = " + Long.lowestOneBit(i));

      /*returns the number of zero bits preceding the highest-order 
         ("leftmost")one-bit */
      System.out.print("Number of leading zeros = ");
      System.out.println(Long.numberOfLeadingZeros(i));
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Number = 170
Binary = 10101010
Number of one bits = 4
Highest one bit = 128
Lowest one bit = 2
Number of leading zeros = 56

Example 2

The following example shows the usage of Long numberOfLeadingZeros() method to get the number of zero bits preceding the highest-order one bit. We've created a long variable and assigned it a negative long value. Then using toBinaryString() method, we're printing the binary format of the value. Using bitCount(), we're printing the one bits count. Using highestOneBit() we're printed the top order bit. Using lowestOneBit(), we're printing the lowest bit and then value of zero bits preceding the highest-order one bit is printed using numberOfLeadingZeros() method.

package com.tutorialspoint;
public class LongDemo {
   public static void main(String[] args) {
      long i = -170L;
      System.out.println("Number = " + i);
    
      /* returns the string representation of the unsigned long value 
         represented by the argument in binary (base 2) */
      System.out.println("Binary = " + Long.toBinaryString(i));

      // returns the number of one-bits 
      System.out.println("Number of one bits = " + Long.bitCount(i));

      /* returns an long value with at most a single one-bit, in the position 
         of the highest-order ("leftmost") one-bit in the specified long value */
      System.out.println("Highest one bit = " + Long.highestOneBit(i));

      /* returns an long value with at most a single one-bit, in the position
         of the lowest-order ("rightmost") one-bit in the specified long value.*/
      System.out.println("Lowest one bit = " + Long.lowestOneBit(i));

      /*returns the number of zero bits preceding the highest-order 
         ("leftmost")one-bit */
      System.out.print("Number of leading zeros = ");
      System.out.println(Long.numberOfLeadingZeros(i));
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Number = -170
Binary = 1111111111111111111111111111111111111111111111111111111101010110
Number of one bits = 60
Highest one bit = -9223372036854775808
Lowest one bit = 2
Number of leading zeros = 0

Example 3

The following example shows the usage of Long numberOfLeadingZeros() method to get the number of zero bits preceding the highest-order one bit. We've created a long variable and assigned it a zero long value. Then using toBinaryString() method, we're printing the binary format of the value. Using bitCount(), we're printing the one bits count. Using highestOneBit() we're printed the top order bit. Using lowestOneBit(), we're printing the lowest bit and then value of zero bits preceding the highest-order one bit is printed using numberOfLeadingZeros() method.

package com.tutorialspoint;
public class LongDemo {
   public static void main(String[] args) {
      long i = 0L;
      System.out.println("Number = " + i);
    
      /* returns the string representation of the unsigned long value 
         represented by the argument in binary (base 2) */
      System.out.println("Binary = " + Long.toBinaryString(i));

      // returns the number of one-bits 
      System.out.println("Number of one bits = " + Long.bitCount(i));

      /* returns an long value with at most a single one-bit, in the position 
         of the highest-order ("leftmost") one-bit in the specified long value */
      System.out.println("Highest one bit = " + Long.highestOneBit(i));

      /* returns an long value with at most a single one-bit, in the position
         of the lowest-order ("rightmost") one-bit in the specified long value.*/
      System.out.println("Lowest one bit = " + Long.lowestOneBit(i));

      /*returns the number of zero bits preceding the highest-order 
         ("leftmost")one-bit */
      System.out.print("Number of leading zeros = ");
      System.out.println(Long.numberOfLeadingZeros(i));
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Number = 0
Binary = 0
Number of one bits = 0
Highest one bit = 0
Lowest one bit = 0
Number of leading zeros = 64
java_lang_long.htm
Advertisements