Java Long.numberofLeadingZeros()方法

原文:https://www.studytonight.com/java-wrapper-class/java-long-numberofleadingzeros-method

Java numberofLeadingZeros() 方法是java.lang包的Long类的一部分。此方法用于返回作为参数传递的长值的二进制补码的最高一位(最左边)之前的零位。换句话说,它将长值转换为二进制,并返回最高(最左边)一位之前的零位总数。

如果传递的值没有一位,即该值为零,则返回值 64。

语法:

public static int numberOfLeadingZeros(long i)

参数:

传递的参数是长值,其最高一位之前的二进制补码零位被返回。

返回:

返回参数二进制补码的最高一位(最左边)之前的零位。

例 1:

这里,为了更好地理解该方法,取一个正数和一个负数。

Long.toBinaryString方法用于表示传递数的等价二进制形式。

import java.lang.*;

public class StudyTonight
{

   public static void main(String[] args) 
   {

      long i = 170L;   //positive number
      System.out.println("Original Number is " + i);
      System.out.println("Binary representation is = " + Long.toBinaryString(i)); // converting into binary string of base 2 
      System.out.println("Number of leading zeros is " + Long.numberOfLeadingZeros(i)); //returns the number of zero bits preceding the highest-order one bit

      long j=-57L; //negative number
      System.out.println("Original Number is " + j);
      System.out.println("Binary representation is = " + Long.toBinaryString(j)); // converting into binary string of base 2 
      System.out.println("Number of leading zeros is " + Long.numberOfLeadingZeros(j)); //returns the number of zero bits preceding the highest-order one bit
   }
}

原数为 170 二进制表示为= 10101010 前导零数为 56 原数为-57 二进制表示为= 1111111111111111111111111111111111111111111111111111111111111111111000111 前导零数为 0

例 2:

这里有一个用户定义的例子,任何使用这段代码的人都可以输入自己选择的值,并获得等效的输出。

import java.lang.*;
import java.util.Scanner;

public class StudyTonight
{

   public static void main(String[] args) 
   {
      try
      {
        System.out.println("Enter the number ");
        Scanner sc = new Scanner(System.in);
        long i=sc.nextLong();
        System.out.println("Binary representation is = " + Long.toBinaryString(i)); // converting into binary string of base 2 
        System.out.println("Number of leading zeros is " + Long.numberOfLeadingZeros(i)); //returns the number of zero bits preceding the highest-order one bit
      }
      catch(Exception e)
      {
        System.out.println("Invalid input");
      }
   }
}

输入数字 566 二进制表示为= 1000110110 前导零的个数为 54

                                                                                        • T5】输入数字 -544 二进制表示为= 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

实时示例:

在这里,您可以测试实时代码示例。您可以为不同的值执行示例,甚至可以编辑和编写您的示例来测试 Java 代码。