Java 数学 subtractExact(long x, long y) 方法
我们将讨论 Java 语言中的 Java 数学 subtractExact(long x, long y) 方法,并了解其功能和工作原理。
subtractExact() 是 Java 数学库中的一个内置函数。该函数返回作为参数传递的两个参数之间的差值。当返回值超出特定数据类型的值范围时,函数将返回异常。
subtractExact() 函数的语法
long a; long b; long subtractExact(long a, long b);
函数中传递的参数是 a 和 b,它们都是长整型数据。函数返回一个长整型值,该值等于函数中传递的参数之差,即 a-b。当函数返回的值溢出传递参数的数据类型的值时,函数将返回一个异常,表明特定数据类型发生了溢出。
在本文中,我们将了解 subtractExact() 函数在 Java 代码中的实现以及它如何返回值。我们将编写一段 Java 代码,输入两个长整型数字,并使用 Java 数学库提供的 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 数学库。
导入数学库后,我们可以使用库中的所有函数,包括 subtractExact() 函数。
初始化两个 long 数据类型的变量。
现在我们将创建另一个变量来存储函数返回的值。
使用 subtractExact() 函数,我们将将值存储在变量中。该函数会从第一个参数中减去传入的第二个参数。
打印函数的输出,该输出等于第一个参数与第二个参数之差。
示例
//查看 subtractExact() 函数实现的 Java 代码 import java.lang.Math; //导入 Java Math 库以使用 subtractExact() 函数 public class Main { public static void main(String[] args) { //初始化两个 long 类型的变量 long a; long b; //将值存储在变量中 a=56240389; b=846270; long ans; //存储函数的输出 //从第一个参数中减去第二个参数,即 a - b ans=Math.subtractExact(a,b); //将 a 和 b 作为参数传递给函数 //打印输出 System.out.println("函数返回值:"+ans); ans=Math.subtractExact(b,a); //等于 b - a System.out.println("函数返回值:"+ans); } }
输出
函数返回值:55394119 函数返回值:-55394119
时间复杂度− O(1),因为函数 subtractExact() 在常数时间内返回输出。
空间复杂度− O(1),因为我们没有使用任何额外的空间来实现该函数。
查看 subtractExact() 函数溢出的 Java 代码
实现该函数的步骤如下:
我们将使用 java.lang.Math 导入 Java 数学库
现在创建两个 long 数据类型的变量。
我们将在其中一个变量中存储 long 数据类型的最小值,在第二个变量中存储任意值一。
现在初始化另一个长整型变量,用于存储函数的返回值。我们将长整型变量的最小值作为第一个参数传递,因为函数会从第一个参数中减去第二个参数。
从长整型变量的最小值中减去该数值会导致长整型变量溢出。因此,函数会抛出长整型变量溢出的异常。
示例
//查看 subtractExact() 函数实现的 Java 代码 import java.lang.Math; //导入 Java Math 库以使用 subtractExact() 函数 public class Main { public static void main(String[] args) { //初始化两个长整型变量 long a; long b; //将值存储在变量中 a=Long.MIN_VALUE; b=7; long ans; //存储函数的输出 //从第一个参数中减去第二个参数,即 a-b //由于 a 是长整型的最小值,因此会导致 long 溢出 ans=Math.subtractExact(a,b); //将 a 和 b 作为参数传递给函数 //打印输出 System.out.println("函数返回的值:"+ans); } }
输出
由于函数发生溢出,代码将无法执行,从而出现如下的长溢出异常:
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 数学 subtractExact(long x, long y) 方法及其在 Java 中的实现和功能。我们通过编写 Java 代码来理解 subtractExact() 函数的实现,并尝试理解函数中值的溢出。
希望您阅读本文后能够理解 Java 数学 subtractExact() 方法及其在 Java 中的实现。