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() method
import 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 = 155
Number of Trailing Zeros = 0
Integral Number = 24
Number of Trailing Zeros = 3
注意: 这里155的尾部零数等于0,这是因为在二进制表示法10011011中,在最低阶(即最右边或最没有意义的 “1 “位)的一位之后没有零。
程序2: 对于一个负数。
// Java program to illustrate the
// Java.lang.Integer.numberOfTrailingZeros() method
import 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 = -1
Number of Trailing Zeros = 0
Integral Number = -90
Number of Trailing Zeros = 1
程序3: 对于一个十进制数值。
注意: 当一个十进制数值作为参数传递时,它将返回一个错误信息。
// Java program to illustrate the
// Java.lang.Integer.numberOfTrailingZeros() method
import 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 output
1 error
程序4: 对于一个字符串值。
注意: 当一个字符串值作为参数被传递时,它将返回一个错误信息。
// Java program to illustrate the
// Java.lang.Integer.numberOfTrailingZeros() method
import 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 output
1 error