Java中BigInteger的使用

BigInteger 任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的

BigInteger 任意大的实数,可以处理小数精度问题。

BigInteger中一些常见的函数:

A=BigInteger.ONE

B=BigInteger.TEN

C=BigInteger.ZERO

一些常见的数的赋初值。将int型的数赋值给BigInteger,

BigInteger.valueOf(int k);

基本的函数:

valueOf:赋初值

add():+  

subtract():-

multiply():*

divide():/

remainder():this % val

divideAndRemainder():a[0]=this / val; a[1]=this % val

pow():a.pow(b)=a^b

gcd(),abs():公约数,绝对值

negate():取负数

signum():符号函数

mod():a.mod(b)=a%b;

shiftLeft():左移,this << n ,this*2^n;

shiftRight():右移,this >> n,this/2^n;

and():等同于c++的&&,且;

or():||,或;

xor():异或,BigInteger xor(BigInteger val),this^val

not():!,非;

bitLength():返回该数的最小二进制补码表示的位的个数,即 *不包括* 符号位 (ceil(log2(this <0 ? -this : this + 1)))。对正数来说,这等价于普通二进制表示的位的个数。

bitCount():返回该数的二进制补码表示中不包扩符号位在内的位的个数。该方法在 BigIntegers 之上实现位向量风格的集合时很有用。

isProbablePrime():如果该 BigInteger 可能是素数,则返回 true ;如果它很明确是一个合数,则返回 false 。 参数 certainty 是对调用者愿意忍受的不确定性的度量:如果该数是素数的概率超过了 1 - 1/2**certainty方法,则该方法返回 true 。执行时间正比于参数确定性的值。

compareTo():根据该数值是小于、等于、或大于 val 返回 -1、0 或 1;

equals:判断两数是否相等,也可以用compareTo来代替;

min(),max():取两个数的较小、大者;

intValue(),longValue(),floatValue(),doublue():把该数转换为该类型的数的值。


注意事项:

1,BigInteger属于java.math.BigInteger,因此在每次使用前都要import 这个类。

2,其构造方法有很多,但现在偶用到的有: BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
//字符串构造

BigInteger(String val, int radix)


将指定基数(进制)的 BigInteger 的字符串表示形式转换为 BigInteger。
如要将int型的以2进制转换为BigInteger型,要写为BigInteger B=new BigInteger("2014" ,2); 


3,BigInteger类模拟了所有的int型数学操作,如add()替代“+”,divide()替代“/”等,但注意其内容进行数学运算时不能直接使用数学运算符进行运算,必须使用其内部方法。而且其操作数也必须为BigInteger型。
如:B.add(2)就是一种错误的操作,因为2没有变为BigInteger型。

4,当要把计算结果输出时应该使用.toString方法将其转换为(10进制)字符串,详细说明如下:
String toString()
返回此 BigInteger 的十进制字符串表示形式。
输出方法:System.out.print(B.toString());

5,另外说明三个个用到的函数。

 BigInteger remainder(BigInteger val)
返回其值为 (this % val) 的 BigInteger。


BigInteger negate()
返回其值是 (-this) 的 BigInteger。


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


remainder用来求余数。
negate将操作数变为相反数。
compare的详解如下:

compareTo
public int compareTo(BigInteger val)将此 BigInteger 与指定的 BigInteger 进行比较。对于针对六个布尔比较运算符 (<, ==, >, >=, !=, <=) 中的每一个运算符的各个方法,优先提供此方法。执行这些比较的建议语句是:(x.compareTo(y) <op> 0),其中 <op> 是六个比较运算符之一。
指定者:
接口 Comparable<BigInteger> 中的 compareTo
参数:
val - 将此 BigInteger 与之比较的 BigInteger。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值