介绍
numberOfTrailingZeros()
方法返回传入的 long 值中最低位(最右边)的 1 之后的零比特的数量。该方法是 java.lang
包中 Long
类的一部分。
numberOfTrailingZeros()
方法返回传入的 long 值中最低位(最右边)的 1 之后的零比特的数量。该方法是 java.lang
包中 Long
类的一部分。
使用 nano
编辑器创建一个新的 Java 文件,在终端中输入以下命令:
touch ~/project/TrailingZeros.java
添加以下代码以使用 numberOfTrailingZeros()
方法获取 long 值中末尾零的数量:
public class TrailingZeros {
public static void main(String[] args) {
// 正数
long num1 = 170L;
System.out.println("原始数字是 " + num1);
System.out.println("二进制表示为 = " + Long.toBinaryString(num1));
System.out.println("末尾零的数量是 = " + Long.numberOfTrailingZeros(num1));
// 负数
long num2 = -57L;
System.out.println("原始数字是 " + num2);
System.out.println("二进制表示为 = " + Long.toBinaryString(num2));
System.out.println("末尾零的数量是 " + Long.numberOfTrailingZeros(num2));
}
}
在终端中使用以下命令编译 Java 代码:
javac ~/project/TrailingZeros.java
编译完成后,在终端中输入以下命令运行程序:
java TrailingZeros
程序的输出将如下所示:
Original Number is 170
Binary representation is = 10101010
Number of trailing zeros is = 1
Original Number is -57
Binary representation is = 1111111111111111111111111111111111111111111111111111111111000111
Number of trailing zeros is 0
你也可以从用户那里获取输入并返回该数字的末尾零的数量。添加以下代码以实现上述功能:
import java.util.Scanner;
public class TrailingZeros {
public static void main(String[] args) {
try {
System.out.println("输入一个数字: ");
Scanner sc = new Scanner(System.in);
long num3 = sc.nextLong();
System.out.println("二进制表示为 = " + Long.toBinaryString(num3));
System.out.println("末尾零的数量是 " + Long.numberOfTrailingZeros(num3));
} catch (Exception e) {
System.out.println("无效输入");
}
}
}
在终端中使用以下命令编译更新后的 Java 代码:
javac ~/project/TrailingZeros.java
编译完成后,在终端中输入以下命令运行更新后的程序:
java TrailingZeros
当程序提示你输入时,输入你选择的一个 long 值并按 'Enter' 键。程序将显示该数字的二进制表示及其末尾零的数量。
在本实验中,你学习了如何使用 numberOfTrailingZeros()
方法来返回传入的 long 值中末尾零的数量。你还创建了一个用户自定义输入程序,从用户那里获取输入并返回该数字的末尾零的数量。