Java Integer.numberOfTrailingZeros()方法及示例
Java.lang.Integer.numberOfTrailingZeros() 方法返回指定整数值的二进制补码表示法中最低位(即最右边或最没有意义的 “1 “位)之后的零(0)位总数,或者我们可以说它是一个将int值转换为二进制的函数,然后考虑最低位并返回它之后的零位数。如果指定的整数值在其二进制补码表示中没有一比特,换句话说,如果它等于零,那么它将返回32。
语法:
public static int numberOfTrailingZeros(int a)
参数。参数a是一个整数值。
返回值。该方法返回指定int值的二进制补码表示法中最低阶一位或一位之后的零位数,如果该值等于零,则返回32。
解释
考虑一个整数a = 170二进制表示法 = 10101010最低的一位=2尾部零的数量=1以下程序说明了Java.lang.Integer.numberOfTrailingZeros()方法。
程序1: 对于一个正数。
// Java program to illustrate the// Java.lang.Integer.numberOfTrailingZeros() methodimport java.lang.*; public class TrailingZeros { public static void main(String[] args) { int a = 155; System.out.println("Integral Number = " + a); // Returns the number of zero bits following the lowest-order //rightmost one-bit System.out.print("Number of Trailing Zeros = "); System.out.println(Integer.numberOfTrailingZeros(a)); a = 24; System.out.println("Integral Number = " + a); // Returns the number of zero bits following the lowest-order //rightmost one-bit System.out.print("Number of Trailing Zeros = "); System.out.println(Integer.numberOfTrailingZeros(a)); }}输出。
Integral Number = 155Number of Trailing Zeros = 0Integral Number = 24Number of Trailing Zeros = 3
注意: 这里155的尾部零数等于0,这是因为在二进制表示法10011011中,在最低阶(即最右边或最没有意义的 “1 “位)的一位之后没有零。
程序2: 对于一个负数。
// Java program to illustrate the// Java.lang.Integer.numberOfTrailingZeros() methodimport java.lang.*; public class TrailingZeros { public static void main(String[] args) { int a = -1; System.out.println("Integral Number = " + a); // Returns the number of zero bits following the lowest-order //rightmost one-bit System.out.print("Number of Trailing Zeros = "); System.out.println(Integer.numberOfTrailingZeros(a)); a = -90; System.out.println("Integral Number = " + a); // Returns the number of zero bits following the lowest-order //rightmost one-bit System.out.print("Number of Trailing Zeros = "); System.out.println(Integer.numberOfTrailingZeros(a)); }}输出。
Integral Number = -1Number of Trailing Zeros = 0Integral Number = -90Number of Trailing Zeros = 1
程序3: 对于一个十进制数值。
注意: 当一个十进制数值作为参数传递时,它将返回一个错误信息。
// Java program to illustrate the// Java.lang.Integer.numberOfTrailingZeros() methodimport java.lang.*; public class TrailingZeros { public static void main(String[] args) { System.out.println("Number of trailing zeros = "+ Integer.numberOfTrailingZeros(12.66)); }}输出。
prog.java:10: error: incompatible types: possible lossy conversion from double to int Integer.numberOfTrailingZeros(12.66)); ^Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output1 error
程序4: 对于一个字符串值。
注意: 当一个字符串值作为参数被传递时,它将返回一个错误信息。
// Java program to illustrate the// Java.lang.Integer.numberOfTrailingZeros() methodimport java.lang.*; public class TrailingZeros { public static void main(String[] args) { System.out.println("Number of trailing zeros = " + Integer.numberOfTrailingZeros("12"));}}输出。
prog.java:10: error: incompatible types: String cannot be converted to int + Integer.numberOfTrailingZeros("12")); ^Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output1 error 