Java Math subtractExact(long x, long y) 方法
我们将讨论 Java 语言中的 Java Math subtractExact(long x, long y) 方法,并了解其功能和工作原理。
subtractExact()是 Java Math 库中的一个内置函数。该函数返回作为参数传递给函数的两个参数之间的差值。当返回值超出特定数据类型的取值范围时,该函数将返回一个异常。
subtractExact() 函数的语法
long a; long b; long subtractExact(long a, long b);
传递给函数的参数是 a 和 b,它们都是 long 数据类型。该函数返回 long 类型的值,该值等于传递给函数的参数的差值,即 a-b。当函数返回的值超过传递参数的数据类型的取值范围时,该函数将返回一个异常,指示特定数据类型发生溢出。
在这篇文章中,我们将看到 subtractExact() 函数在 Java 代码中的实现以及它如何返回值。我们将编写一段 Java 代码,其中两个数字将作为输入给出,输入将为 long 数据类型,我们需要使用 Java Math 库中提供的 subtractExact() 函数来找到这两个数字的差值。
让我们通过以下示例了解问题。
输入
a=30 , b=10
输出
20
说明 - 此处给出的输入数字为 30 和 10。我们需要使用 subtractExact() 函数找到这两个数字的差值,即 a-b。因此,输出将为 20,等于 a-b。
输入
a= -2 , b=-3
输出
1
说明 - 输入数字为 -2 和 -3。使用 subtractExact(a,b) 并将这两个数字作为参数传递给函数,该函数将返回等于 a-b 的值,即 -2-(-3)=-2+3=1。因此,1 是所需的输出。
让我们了解在 Java 代码中 subtractExact() 函数的使用,以查看该函数的实现。
让我们了解在 Java 代码中 subtractExact() 函数的使用,以查看该函数的实现
我们将遵循以下步骤在我们的 Java 代码中实现 subtractExact() 函数
我们将使用 java.lang.Math 导入 Java Math 库。
导入 Math 库后,我们可以使用库中的所有函数,包括 subtractExact() 函数。
初始化两个 long 数据类型的变量。
现在,我们将创建另一个变量来存储函数返回的值。
使用 subtractExact() 函数,我们将值存储在变量中。该函数从第一个参数中减去传递给函数的第二个参数。
打印函数的输出,该输出将等于第一个参数和第二个参数的差值。
示例
//Java Code to see the implementation of the subtractExact() function import java.lang.Math; //to import the java Math library to use the subtractExact() function public class Main { public static void main(String[] args) { //initialise two variable of long data type long a; long b; //store the values in the variable a=56240389; b=846270; long ans; //to store the output of the function //subtracts the second parameter from the first one i.e. a-b ans=Math.subtractExact(a,b); // passing a and b as parameter in the function //print the output System.out.println("The value returned by the function : "+ans); ans=Math.subtractExact(b,a); //will equal to b-a System.out.println("The value returned by the function : "+ans); } }
输出
The value returned by the function : 55394119 The value returned by the function : -55394119
时间复杂度 - O(1),因为 subtractExact() 函数在常数时间内返回输出。
空间复杂度 - O(1),因为我们没有使用任何额外的空间来实现该函数。
查看 subtractExact() 函数中溢出的 Java 代码
实现该函数的步骤如下
我们将使用 java.lang.Math 导入 Java Math 库
现在创建两个 long 数据类型的变量。
我们将 long 数据类型的最小值存储在一个变量中,并将任何值存储在第二个变量中。
现在初始化另一个 long 数据类型的变量来存储函数返回的值。我们将 long 数据类型的最小值作为第一个参数传递,因为该函数从第一个参数中减去传递给函数的第二个参数。
从 long 数据类型的最小值中减去数字将导致 long 数据类型发生溢出。因此,该函数将显示 long 溢出的异常。
示例
//Java Code to see the implementation of the subtractExact() function import java.lang.Math; //to import the java Math library to use the subtractExact() function public class Main { public static void main(String[] args) { //initialise two variable of long data type long a; long b; //store the values in the variable a=Long.MIN_VALUE; b=7; long ans; //to store the output of the function //subtracts the second parameter from the first one i.e. a-b //which will cause overflow in long as a is the minimum value of long data type ans=Math.subtractExact(a,b); // passing a and b as parameter in the function //print the output System.out.println("The value returned by the function : "+ans); } }
输出
由于函数中发生溢出,代码将无法执行,从而显示如下所示的 long 溢出异常
Exception in thread "main" java.lang.ArithmeticException: long overflow at java.base/java.lang.Math.subtractExact(Math.java:887) at Main.main(Main.java:19)
结论
本文讨论了 Java Math subtractExact(long x, long y) 方法以及该函数在 Java 中的实现及其功能。我们通过编写 Java 代码来了解 subtractExact() 函数的实现,并尝试了解函数中值的溢出。
我希望您在阅读本文后已经了解了 Java Math subtractExact() 方法及其在 Java 中的实现。