当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Long和BigInteger的区别用法及代码示例


在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 支持,通常速度更快

由于动态分配和方法调用而速度较慢



相关用法


注:本文由纯净天空筛选整理自mguru4c05q大神的英文原创作品 Difference Between Long and BigInteger in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。