Java SE API —— 【Math 】之【BigInteger】类

时间:2021-05-30 21:05:46

概述

不可变的任意精度的整数。提供了模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。

算术运算的语义完全模仿 Java 整数算术运算符的语义,如 The Java Language Specification 中所定义的。例如,以零作为除数的除法抛出 ArithmeticException,而负数除以正数的除法则产生一个负(或零)的余数。Spec 中关于溢出的细节都被忽略了,因为 BigIntegers 所设置的实际大小能适应操作结果的需要。

位移操作的语义扩展了 Java 的位移操作符的语义以允许产生负位移距离。带有负位移距离的右移操作会导致左移操作,反之亦然。忽略无符号的右位移运算符(>>>),因为该操作与由此类提供的“无穷大的词大小”抽象结合使用时毫无意义。

当为任何输入参数传递 null 对象引用时,此类中的所有方法和构造方法都将抛出 NullPointerException

构造方法

BigInteger(byte[] val)

说明

将包含 BigInteger 的二进制补码表示形式的 byte 数组转换为 BigInteger。

参数

val - BigInteger 的 big-endian 二进制补码表示形式

抛出

NumberFormatException - val 长度为0

例子

byte[] dat = {0x01,0x00,0x00};
BigInteger bi = new BigInteger(dat);
System.out.println(bi);   //输出65536