Java.lang.Long 类

java.lang.Long.numberOfLeadingZeros() 方法返回最高位("最左边"之前的零位数) ") 指定 long 值的二进制补码二进制表示形式中的一位。如果指定值在其二进制补码表示中没有一位,换句话说,如果它等于零,则该方法返回 64。

对于所有正长整型值 x:

  • floor(log2(x)) = 63 - numberOfLeadingZeros(x)
  • ceil(log2(x)) = 64 - numberOfLeadingZeros(x - 1)

语法

public static int numberOfLeadingZeros(long i)

参数

i 指定要计算前导零个数的值。

返回值

返回前导零的个数。指定 long 值的二进制补码二进制表示形式中最高位("最左边")一位之前的零位,如果该值等于零,则为 64。

异常

不适用。

示例:

在下面的示例中,java.lang.Long.numberOfLeadingZeros() 方法返回给定 long 值的二进制补码二进制表示中最左边一位之前的零位数。

import java.lang.*;

public class MyClass {
  public static void main(String[] args) {
    
    //创建一个长值
    long x = 75; 

    //打印x的值,它的二进制
    //表示和numberOfLeadingZeros
    System.out.println("The values of x is: " + x);
    System.out.print("The binary representation of x is: ");
    System.out.println(Long.toBinaryString(x));
    System.out.print("The numberOfLeadingZeros is: ");
    System.out.println(Long.numberOfLeadingZeros(x));
  }
}

上述代码的输出将是:

The values of x is: 75
The binary representation of x is: 1001011
The numberOfLeadingZeros is: 57