Java中的BigInteger类

java.math.BigInteger的类提供操作类似物所有Java的基本整数运算符和来自java.lang.Math的所有相关方法。

它还提供用于模块化算术,GCD计算,素数测试,素数生成,位操作以及其他一些杂项运算的操作。所有操作的行为就像BigIntegers用二进制补码表示。

算术运算和按位逻辑运算的语义分别类似于Java的整数算术运算符和Java的按位整数运算符。移位运算的语义扩展了Java移位运算符的语义,以允许负移位距离。

比较操作执行带符号整数比较。提供了模块化算术运算来计算残差,执行幂运算和计算乘法逆。位操作在其操作数的二进制补码表示的一位上进行操作。

为任何输入参数传递空对象引用时,此类中的所有方法和构造函数都将引发NullPointerException。

类声明

以下是java.math.BigInteger类的声明-

public class BigInteger    
   extends Number      
      implements Comparable<BigInteger>

领域

以下是java.math.BigInteger类的字段-

  • 静态BigInteger ONE -BigInteger常数1。

  • 静态BigInteger TEN -BigInteger常数10。

  • 静态BigInteger零-BigInteger常数零。

重要方法

序号
方法与说明
1BigIntegerabs()
此方法返回一个BigInteger,其值为该BigInteger的绝对值。

2BigInteger add(BigInteger val)
此方法返回一个BigInteger,其值为(this + val)。

3BigInteger和(BigInteger val)
此方法返回一个BigInteger,其值为(this&val)。

4intbitCount()
此方法返回此BigInteger的二进制补码表示形式中不同于其符号位的位数。

5int compareTo(BigInteger val)
此方法将BigInteger与指定的BigInteger进行比较。

示例

import java.math.BigInteger;

public class Tester {
   public static void main(String[] args) {
      //创建3个BigInteger对象
      BigInteger bi1, bi2;
 
      //将值分配给bi1,bi2-
      bi1 = new BigInteger("123");
      bi2 = new BigInteger("-50");

      System.out.println("Absolute value of "          
         + bi2 + " is " + bi2.abs());
      System.out.println("Result of addition of "          
         + bi1 + ", "+ bi2 + " is " +bi1.add(bi2));
      System.out.println("Result of and opearation of "
         + bi1 + ", "+ bi2 + " is " +bi1.and(bi2));
      System.out.println("Result of bitCount opearation of "
         + bi1 + " is " +bi1.bitCount());
      System.out.println("Result of compareTo opearation of "
         + bi1 + ", "+ bi2 + " is " +bi1.compareTo(bi2));
   }
}

输出结果

Absolute value of -50 is 50
Result of addition of 123, -50 is 73
Result of and opearation of 123, -50 is 74
Result of bitCount opearation of 123 is 6
Result of compareTo opearation of 123, -50 is 1