Java Integer.numberOfLeadingZeros()方法及实例

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 = 155
Number of Leading Zeros = 24
Integral Number = 10
Number 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 = -15
Number 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 output
1 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 output
1 error 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程