BigInteger

BigInteger

不变的任意精度的整数。 在所有的操作中
BigIntegers 看起来好象是用二进制补码(类似 Java
的基本整数类型)表示的 。BigIntegers 提供类似于所有 Java
基本整数操作符和来自 java.lang.Math 的所有相关静态方法。 此外,
BigIntegers 还提供模算术操作, GCD 计算,基本测试,初期生成,位处理和一些其它的零碎操作。

如同《Java 语言规范》中的定义,算术运算的语义极为类似于 java 的整数算术运算符。 
例如,被零除将抛出 ArithmeticException ,一个负数除以一个正数将产生一个负
(或零)余数。
《规范》中所有关于溢出的细节都忽略了,因为 BigIntegers
能够保存任意大数值的操作结果。

移位操作的语义扩展了 Java 中的移位运算符而允许负的移位距离。
移动负距离的右移的结果是一个左移,反之类似。无符号的右移运算符
(>>>) 被忽略,因为该操作对该类提供的混合了“无限字长”的抽象没有多大意义。

位逻辑运算语义完全模拟
Java 的位整数运算符。二目运算符 (与,或,异或)
在执行操作之前隐含地对两个操作数中的较短者执行符号扩展。

比较操作执行带正负号的整数比较,类似于
java 的关系比较和相等运算符所作的比较。

提供模算术运算操作来计算余数、
乘幂和多重逆。这些方法总是返回一个在 0 和 (模数 - 1) 之间的,包括边界在内的)非负结果。

位操作对它们操作数的二进制补码的位进行操作。
如果必要的话,操作数要做扩展以便它包含运算所需的位。
没有任何位操作能产生一个同所要操作的
BigInteger 符号不同的数,因为它们仅能影响单个位,并且该类提供的 “无限字长”抽象保证了在每个
BigInteger 之前有无限多个 “虚拟符号位”。


类 java.math.BigInteger

java.lang.Object
|
+----java.lang.Number
|
+----java.math.BigInteger


public class BigInteger
extends Number


 

参见:
BigDecimal





构造子索引
BigInteger(byte[])
把一个包含着(带正负号)整数的二进制补码的字节数组翻译为 BigInteger 。
BigInteger(int, byte[])
把一个整数的 sign-magnitude 表示法翻译为 BigInteger 。
BigInteger(int, int, Random)
返回有指定 bitLength(可能是素数)的随机选择的 BigInter 。
BigInteger(int, Random)
返回一个随机数,均匀分布在 [0, 2**numBits - 1] 之间
(假设由 rndSrc 提供一个公平的随机源) 。
BigInteger(String)
把一个字符串翻译为一个 BigInteger ,该字符串包含可选的负号,后面跟着一个或多个十进制数字序列。
BigInteger(String, int)
把一个字符串翻译为一个 BigInteger ,该字符串包含可选的负号,后面跟着一个或多个指定进制的数字序列。



方法索引
abs()
返回一个 BigInteger ,它等于该数字的绝对值。
add(BigInteger)
返回一个 BigInteger ,其值是 (this + val) 。
and(BigInteger)
返回一个 BigInteger ,其值是 (this & val) 。
andNot(BigInteger)
返回一个 BigInteger ,其值是 (this & ~val) 。
bitCount()
返回该数的二进制补码表示中不包括符号位在内的位的个数。
bitLength()
返回该数的最小的二进制补码表示法中位的个数,
即 *不包括* 一个符号位,例如(ceil(log2(this <0 ? -this : this + 1))).
clearBit(int)
返回一个 BigInteger ,它等于该数指定位清零后所得的值。
compareTo(BigInteger)
根据该数字是小于、等于还是大于 val 返回 -1、0 或 1。
divide(BigInteger)
返回一个 BigInteger ,其值是 (this / val) 。
divideAndRemainder(BigInteger)
返回一个包含两个 BigInteger 的数组。
doubleValue()
把该数字转换为一个 double 型。
equals(Object)
如果 x 是等于该数则返回 true 。
flipBit(int)
返回一个 BigInteger ,它等于该数指定位取反后所得的值。
floatValue()
把该数字转换为一个 float 型。
gcd(BigInteger)
返回值为 abs(this) 和 abs(val) 最大公分母的 BigInteger 。
getLowestSetBit()
返回该数最右端 (lowest-order)是 1 的位的索引值,
(即距最右 1 位之前的 0 位的个数 )。
hashCode()
为该对象计算一个散列码。
intValue()
把该数字转换为一个 int 值。
isProbablePrime(int)
如果该 BigInteger 是素数,则返回 true ;如果该 BigInteger 是合数则返回 false 。
longValue()
把该数字转换为一个 long 型值。
max(BigInteger)
返回 BigInteger ,其值是 this 和 val 中的较大者。
min(BigInteger)
返回 BigInteger ,其值是 this 和 val 中的较小者。
mod(BigInteger)
返回一个 BigInteger ,其值是(this mod m )。
modInverse(BigInteger)
返回 this 取模 m 的模多重逆。
modPow(BigInteger, BigInteger)
返回一个 BigInteger ,其值是 (this ** exponent) mod m 。
multiply(BigInteger)
返回一个 BigInteger ,其值是 (this * val) 。
negate()
返回一个 BigInteger ,其值是 (-1 * this ) 。
not()
返回一个 BigInteger ,其值是 (~this) 。
or(BigInteger)
返回一个 BigInteger ,其值是 (this | val) 。
pow(int)
返回一个 BigInteger ,其值是 (this ** exponent) 。
remainder(BigInteger)
返回一个 BigInteger ,其值是 (this % val) 。
setBit(int)
返回一个 BigInteger ,其值等于该数被设置指定位后所得的值。
shiftLeft(int)
返回一个 BigInteger ,其值是 (this << n).
shiftRight(int)
返回一个 BigInteger ,其值是 (this >> n).
signum()
返回该数值的符号(即根据该数的值是正、零或负返回 -1 、0 或 1)。
subtract(BigInteger)
返回一个 BigInteger ,其值是 (this - val)。
testBit(int)
如果设置了指定位则返回 true 。
toByteArray()
返回该数值的二进制补码表示。
toString()
以 10 为基数返回表示该数的字符串。
toString(int)
以指定数为基数返回表示该数的字符串。
valueOf(long)
返回一个是指定值的 BigInteger 。
xor(BigInteger)
返回一个 BigInteger ,其值是 (this ^ val) 。
posted on 2015-03-14 20:27  swek  阅读(225)  评论(0编辑  收藏  举报