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