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类的字段-
静态BigIntegerONE-BigInteger常数1。
静态BigIntegerTEN-BigInteger常数10。
静态BigInteger零-BigInteger常数零。
重要方法
abs()
此方法返回一个BigInteger,其值为该BigInteger的绝对值。
此方法返回一个BigInteger,其值为(this+val)。
此方法返回一个BigInteger,其值为(this&val)。
bitCount()
此方法返回此BigInteger的二进制补码表示形式中不同于其符号位的位数。
此方法将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