在Java中,long和BigInteger是两种不同的数据类型,用于表示和对大整数执行操作。在本文中,我们将了解 Java 中的 BigInteger 和 Long。
Java 中的 long
long 是 Java 中的一种基本数据类型,用于存储 64 位有符号整数。
- 它的值范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
- long 是一种固定大小的数据类型,这意味着它为每个变量分配固定数量的内存。
long 数据类型通常用于预期大于 int 范围的整数值。
用法:
long variableName;
Java long 的示例
下面是long在Java中的实现,下面提到:
Java
// Java Program to implement Long
import java.io.*;
// Driver Class
public class LongExample {
// main function
public static void main(String[] args) {
// declaring and initializing a long variable
long num1 = 1234567890L;
// performing arithmetic operations with long values
long num2 = 9876543210L;
long sum = num1 + num2;
long difference = num2 - num1;
long product = num1 * num2;
long quotient = num2 / num1;
// printing the results
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("sum = " + sum);
System.out.println("difference = " + difference);
System.out.println("product = " + product);
System.out.println("quotient = " + quotient);
}
}
输出
num1 = 1234567890 num2 = 9876543210 sum = 11111111100 difference = 8641975320 product = -6253480962446024716 quotient = 8
Java 中的BigInteger
BigInteger 是 Java 的 java.math 包中的一个类,表示 arbitrary-precision 整数。
- 它可以处理几乎无限大小的整数,仅受可用内存的限制。
- BigInteger 对象的大小不固定,它们根据需要动态分配内存。
用法:
BigInteger num1 = new BigInteger();
BigInteger 的示例
下面是上述方法的实现:
Java
import java.io.*;
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// creating BigInteger objects
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("98765432109876543210");
// performing arithmetic operations with BigInteger objects
BigInteger sum = num1.add(num2);
BigInteger difference = num2.subtract(num1);
BigInteger product = num1.multiply(num2);
BigInteger quotient = num2.divide(num1);
// printing the results
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("sum = " + sum);
System.out.println("difference = " + difference);
System.out.println("product = " + product);
System.out.println("quotient = " + quotient);
}
}
输出
num1 = 12345678901234567890 num2 = 98765432109876543210 sum = 111111111011111111100 difference = 86419753208641975320 product = 1219326311370217952237463801111263526900 quotient = 8
long 和 BigInteger 之间的区别
long 和 BigInterger 之间的区别如下表所示:
特征 |
长 |
BigInteger |
---|---|---|
数据类型 |
Primitive |
Class |
尺寸 |
固定(64 位) |
Dynamic |
范围 |
Limited |
几乎无限制 |
精确 |
受尺寸限制 |
Unlimited |
内存分配 |
Fixed |
Dynamic |
溢出处理 |
环绕 |
不换行并优雅地处理溢出 |
用法 |
适合常见的整数需求 |
适用于非常大的整数和专门的算术运算 |
性能 |
由于 hardware-level 支持,通常速度更快 |
由于动态分配和方法调用而速度较慢 |
相关用法
- Java Long compareTo()用法及代码示例
- Java Long bitCount()用法及代码示例
- Java Long byteValue()用法及代码示例
- Java Long doubleValue()用法及代码示例
- Java Long floatValue()用法及代码示例
- Java Long hashCode()用法及代码示例
- Java Long highestOneBit()用法及代码示例
- Java Long intValue()用法及代码示例
- Java Long lowestOneBit()用法及代码示例
- Java Long numberOfLeadingZeros()用法及代码示例
- Java Long numberOfTrailingZeros()用法及代码示例
- Java Long parseLong()用法及代码示例
- Java Long reverse()用法及代码示例
- Java Long reverseBytes()用法及代码示例
- Java Long rotateLeft()用法及代码示例
- Java Long rotateRight()用法及代码示例
- Java Long shortValue()用法及代码示例
- Java Long toBinaryString()用法及代码示例
- Java Long toHexString()用法及代码示例
- Java Long toOctalString()用法及代码示例
- Java Long toString()用法及代码示例
- Java Long valueOf()用法及代码示例
- Java Long longValue()用法及代码示例
- Java Long signum()用法及代码示例
- Java LongAccumulator accumulate()用法及代码示例
注:本文由纯净天空筛选整理自mguru4c05q大神的英文原创作品 Difference Between Long and BigInteger in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。