Java Integer.numberOfLeadingZeros()方法及实例

来源:这里教程网 时间:2026-02-17 20:51:17 作者:

Java Integer.numberOfLeadingZeros()方法及实例

java.lang.Integer.numberOfLeadingZeros() 是一个返回指定整数值的二进制补码中最高阶(即最左或最有意义的 “1 “位)一位之前的零(0)位总数的方法,或者我们可以说它是一个将int值转换为二进制的函数,然后考虑最高的一位并返回它之前的零位数量。如果指定的整数值在其二补表示中没有一位,换句话说,如果它等于零,那么它将返回32。

语法

public static int numberOfLeadingZeros(int arg)

参数: 该方法接受一个参数 arg ,即整数值。

返回值: 该方法返回指定int值的二进制补码表示法中最高阶set-bit之前的零位数,如果该值等于零,则返回32。

解释

考虑任何整数arg = 19二进制表示法 = 0001 0011最高位(5位),即0001 0000所以结果=16-5即11。

以下程序说明了java.lang.Integer.numberOfLeadingZeros()方法。
程序1: 对于一个正数。

// Java program to illustrate the// java.lang.Integer.numberOfLeadingZeros()import java.lang.*; public class LeadingZeros {     public static void main(String[] args)    {         int a = 155;        System.out.println("Integral Number = " + a);         // Returns the number of zero bits preceding the highest-order        // leftmost one-bit        System.out.print("Number of Leading Zeros = ");        System.out.println(Integer.numberOfLeadingZeros(a));        a = 10;        System.out.println("Integral Number = " + a);         // Returns the number of zero bits preceding the highest-order        // leftmost one-bit        System.out.print("Number of Leading Zeros = ");        System.out.println(Integer.numberOfLeadingZeros(a));    }}

输出

Integral Number = 155Number of Leading Zeros = 24Integral Number = 10Number of Leading Zeros = 28

程序2: 对于一个负数。

// Java program to illustrate the// java.lang.Integer.numberOfLeadingZeros()import java.lang.*; public class LeadingZeros {     public static void main(String[] args)    {         int a = -15;        System.out.println("Number = " + a);         // Returns the number of zero bits preceding the highest-order        // leftmost one-bit        System.out.print("Number of Leading Zeros = ");        System.out.println(Integer.numberOfLeadingZeros(a));    }}

输出

Number = -15Number of Leading Zeros = 0

程序3: 对于一个十进制数值。
注意: 当一个十进制数值作为参数传递时,它将返回一个错误信息。

// Java program to illustrate the// java.lang.Integer.numberOfLeadingZeros()import java.lang.*; public class LeadingZeros {     public static void main(String[] args)    {         // Returns the number of zero bits preceding the highest-order        // leftmost one-bit        System.out.print("Number of Leading Zeros = ");        System.out.println(Integer.numberOfLeadingZeros(16.32));    }}

输出

prog.java:11: error: incompatible types: possible lossy conversion from double to int        System.out.println(Integer.numberOfLeadingZeros(16.32));                                                        ^Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output1 error

程序4: 对于参数中传递了一个字符串值。

注意: 当参数中传递了一个字符串时,它会返回一个错误信息。

// Java program to illustrate the// java.lang.Integer.numberOfLeadingZeros()import java.lang.*; public class LeadingZeros {     public static void main(String[] args)    {         // returns the number of zero bits preceding the highest-order        // leftmost one-bit        System.out.print("Number of Leading Zeros = ");        System.out.println(Integer.numberOfLeadingZeros("18"));    }}

输出

prog.java:11: error: incompatible types: String cannot be converted to int        System.out.println(Integer.numberOfLeadingZeros("18"));                                                        ^Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output1 error 

相关推荐