The numberOfLeadingZeros()
method of Integer class, returns number of 0’s bits before the first one-bit in the binary representation of the given int number. If number is zero (there are no one-bit), then it returns 32.
Syntax of numberOfLeadingZeros() method
public static int numberOfLeadingZeros(int i)
numberOfLeadingZeros() Parameters
i
– An int value whose number of leading zeroes needs to be determined.
numberOfLeadingZeros() Return Value
- Returns number of zero bits preceding the highest-order (leftmost) one bit
Supported versions: Java 1.5 and onwards.
Example 1
Here, we are counting the number of zero bits before first one-bit in the given number. The point to remember is that each number is represented as 32 bits binary number. The binary representation of decimal number 20
is 10100
, however when this is represented as a 32 bits binary number then it is proceeded with 27 zero bits.
This is why this method returns 32 for the integer value 0 as all 32 bits are zeroes.
class JavaExample { public static void main(String args[]) { //binary equivalent: // 0000 0000 0000 0000 0000 0000 0001 0100 int i = 20; System.out.print("Number of leading zero bits: "); System.out.print(Integer.numberOfLeadingZeros(i)); } }
Output:
Example 2
The number of leading zeroes are returned as zero for the negative numbers as the most significant bit is 1 for negative numbers.
class JavaExample { public static void main(String args[]) { //MSF (Most significant bit) is 1 int i = -100; System.out.print("Number of leading zero bits: "); System.out.print(Integer.numberOfLeadingZeros(i)); } }
Output: