Java.math.BigInteger类实例

转载 2016年08月31日 14:32:58

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

它还提供了模运算,GCD计算,素性测试,素数生成,位操作,和一些其他杂项业务操作。所有的操作行为,如果BigInteger的二进制补码委托表示法。

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

比较操作执行有符号整数的比较。提供模块化的算术运算来计算残留,执行幂运算和计算乘法逆。位运算操作对他们的操作数的二进制补码表示的单个位。

在这个类将抛出NullPointerException,在所有方法和构造函数使用时,通过输入任何参数提供一个空的对象引用。

类声明

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

public class BigInteger
    extends Number
        implements Comparable<BigInteger>

字段域

以下是java.math.BigInteger类中的字段:

  • static BigInteger ONE -- BigInteger的常量1。

  • static BigInteger TEN -- BigInteger的常量10。

  • static BigInteger ZERO -- BigInteger的常量0。

类构造函数

S.N. 构造函数 & 描述
1 BigInteger(byte[] val)
这个构造函数用于转换一个字节数组包含BigInteger的二进制补码,以二进制表示成一个BigInteger。
2 BigInteger(int signum, byte[] magnitude)
此构造函数用于将BigInteger的符号大小表示法转换成一个BigInteger值。
3 BigInteger(int bitLength, int certainty, Random rnd)
此构造函数用于构造一个随机生成正BigInteger的可能是以指定的bitLength的素数。
4 BigInteger(int numBits, Random rnd)
此构造函数用于构造一个随机生成的BigInteger,均匀分布在范围0到 (2numBits - 1), 包括.
5 BigInteger(String val)
此构造函数用于将BigInteger的十进制字符串表示形式转换成一个BigInteger值。
6 BigInteger(String val, int radix)
这个构造函数用于转换为BigInteger的指定基数为一个BigInteger的字符串表示形式。

类方法

S.N. 方法 & 描述
1 BigInteger abs() 
此方法返回一个BigInteger,其值是此BigInteger的绝对值。
2 BigInteger add(BigInteger val)
此方法返回一个BigInteger,其值是(this + val).
3 BigInteger and(BigInteger val)
此方法返回一个BigInteger,其值是 (this & val).
4 BigInteger andNot(BigInteger val) 
此方法返回一个BigInteger,其值是 (this & ~val).
5 int bitCount()
此方法返回此BigInteger的二进制补码表示的位,从符号位不同的数字。
6 int bitLength() 
此方法返回位在此BigInteger的最小的二进制补码表示的数,不包括符号位。
7 BigInteger clearBit(int n)
此方法返回一个BigInteger,其值相当于此BigInteger与指定位清零。
8 int compareTo(BigInteger val)
此方法比较此BigInteger与指定的BigInteger。
9 BigInteger divide(BigInteger val)
此方法返回一个BigInteger,其值是 (this / val).
10 BigInteger[ ] divideAndRemainder(BigInteger val)
此方法返回一个包含两个BigIntegers:(this / val) 和 (this % val),其次是一个数组。
11 double doubleValue()
此方法此BigInteger转换为双精度double。 
12 boolean equals(Object x)
此方法比较此BigInteger与指定对象是否相等。
13 BigInteger flipBit(int n)
此方法返回一个BigInteger,其值相当于此BigInteger与指定位翻转。
14 float floatValue()
此方法将BigInteger转换为float。
15 BigInteger gcd(BigInteger val) 
此方法返回一个BigInteger,其值是绝对值的最大公约数:abs(this) 和abs(val)。
16 int getLowestSetBit()
此方法返回最右边的(最低阶)的索引在此BigInteger1比特(零比特的数量,以最右侧的1位的右侧)。
17 int hashCode()
此方法返回此BigInteger的哈希代码。
18 int intValue()
此方法此BigInteger转换为int。
19 boolean isProbablePrime(int certainty)
此方法返回true,如果此BigInteger是素数,其绝对复合数则返回false。
20 long longValue()
些方法将BigInteger转换为long。
21 BigInteger max(BigInteger val)
此方法返回此BigInteger和val的最大值。
22 BigInteger min(BigInteger val)
此方法返回此BigInteger和val的最小值。
23 BigInteger mod(BigInteger m)
此方法返回一个BigInteger,其值是(this mod m).
24 BigInteger modInverse(BigInteger m)
此方法返回一个BigInteger,其值是 (this-1 mod m).
25 BigInteger modPow(BigInteger exponent, BigInteger m)
此方法返回一个BigInteger,其值是 (thisexponent mod m).
26 BigInteger multiply(BigInteger val)
此方法返回一个BigInteger,其值是 (this * val).
27 BigInteger negate()
此方法返回一个BigInteger,其值是 (-this).
28 BigInteger nextProbablePrime() 
此方法返回一个整数大于该BigInteger的可能是素数。
29 BigInteger not()
此方法返回一个BigInteger,其值是 (~this).
30 BigInteger or(BigInteger val)
此方法返回一个BigInteger,其值是 (this | val).
31 BigInteger pow(int exponent)
此方法返回一个BigInteger,其值是(thisexponent).
32 static BigInteger probablePrime(int bitLength, Random rnd)
此方法返回一个正BigInteger的可能是素数,以指定的bitLength。
33 BigInteger remainder(BigInteger val)
此方法返回一个BigInteger,其值是 (this % val).
34 BigInteger setBit(int n)
此方法返回一个BigInteger,其值相当于此BigInteger与指定的位设置。
35 BigInteger shiftLeft(int n)
此方法返回一个BigInteger,其值是 (this << n).
36 BigInteger shiftRight(int n)
此方法返回一个BigInteger,其值是 (this >> n).
37 int signum() 
This method returns the signum function of this BigInteger.
38 BigInteger subtract(BigInteger val)
此方法返回一个BigInteger,其值是 (this - val).
39 boolean testBit(int n)
此方法返回当且仅当所指定的位被设置为真。
40 byte[ ] toByteArray()
此方法返回一个包含此BigInteger的二进制补码表示的字节数组。
41 String toString() 
此方法返回此BigInteger的十进制字符串表示形式。
42 String toString(int radix) 
此方法返回在给定的基数以BigInteger的字符串表示形式。
43 static BigInteger valueOf(long val)
此方法返回一个BigInteger,其值等于指定long。
44 BigInteger xor(BigInteger val) 
此方法返回一个BigInteger,其值是 (this ^ val).

Java大整数类的设计及其实现

1.1 概述 BigInteger类的开发者是Josh Bloch和Michael McCloskey。 Java大整数类BigInteger继承于Number类并实现了Comparable接口,...
  • kunlong0909
  • kunlong0909
  • 2012年01月10日 10:58
  • 5587

java中的BigInteger(很好很强大)(转)

JAVA之BigInteger 用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处...
  • w00w12l
  • w00w12l
  • 2012年02月24日 14:42
  • 101778

Java 7 源码学习系列(三)——BigInteger

http://www.hollischuang.com/archives/176 在java中,有很多基本数据类型我们可以直接使用,比如用于表示浮点型的float、double,用于表示字符型的...
  • stubbornying
  • stubbornying
  • 2016年06月15日 19:54
  • 1411

BigInteger类实例的构造过程——JDK源码解析

最近看了下JDK1.6版本的BigInteger类,仔细研究了下大整数实例的构造过程,现在把自己的所得所想分享给大家. 首先,为什么需要大整数类?简单的说就是因为内部的数据类型能表示的最大数是64位长...
  • zhaoyunfullmetal
  • zhaoyunfullmetal
  • 2014年02月19日 09:56
  • 3742

java中大数运算Biginteger类的方法调用

/**  * 大数运算  * BigInteger  * 求91的92次方  * 求它除以100的余数  * 大数运算Biginteger类的方法调用  */ packa...
  • ljp812184246
  • ljp812184246
  • 2016年06月16日 11:54
  • 3565

JAVA 大数(BigInteger) 归纳总结

JAVA 大数(BigInteger) 归纳总结 分类: 学习资料[转载区]2012-05-12 13:27 3690人阅读 评论(0) 收藏 举报 javastringrando...
  • songjunyan
  • songjunyan
  • 2014年11月03日 17:30
  • 1485

java中biginteger和bigdecimal在大数计算中的使用

java中的BigInteger和BigIntegerDecimal 当我们在做Acm的大数题时,我们会发现int,double,表示的范围有限,不能够满足要求,对于c/c++而言,我们就只能采用数...
  • u013093547
  • u013093547
  • 2015年07月21日 23:46
  • 2663

BigInteger用法-Java大数据存储、运算

用这样一组数字,0,1,1,2,3,5,8........,求第100个数是多少! 初看这道题很简单,我们只需要设定一个数组,然后往里面放入对应的值,除了前两个数字位,后面每个数字位都是前两个数字位...
  • guomutian911
  • guomutian911
  • 2015年04月13日 18:38
  • 1400

Java中的BigInteger在ACM中的应用

Java中的BigInteger在ACM中的应用 在ACM中的做题时,经常会遇见一些大数的问题,这是当我们用C或是C++时就会觉得比较麻烦,就想有没有现有的现有的可以直接调用的BigInter,那样...
  • u010304217
  • u010304217
  • 2014年07月12日 19:41
  • 1150

【经验】 Java BigInteger类以及其在算法题中的应用

【经验】 Java BigInteger类以及其在算法题中的应用标签(空格分隔): 经验本来在刷九度的数学类型题,有进制转换和大数运算,故而用到了java BigInteger类,使用了之后才发现真是...
  • fuxuemingzhu
  • fuxuemingzhu
  • 2017年03月06日 20:42
  • 472
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java.math.BigInteger类实例
举报原因:
原因补充:

(最多只允许输入30个字)