java学习笔记(5)-- java中处理大数据的方法 【BigInteger的使用】

java中处理大数据的方法

在c和c++中,大数据往往会因为超过该类型的最大长度而导致溢出等问题,解决起来也比较麻烦(反正它们给的解决办法我是看不懂。。。。)

java为了解决该问题,有两个类BigInteger和BigDecimal 分别表示大整数类和大浮点数类,可以存储无限大的数,只要计算机内存足够大。

前两天在用到BigInteger的时候发现他的用法和int这些普通类型的用法不太一样,顺便了解了一下它常用的方法~

1.BigInteger.valueOf();

在定义一个普通类型的变量并且给他赋初值的时候,我们只需要这样:

int i = 0

但是当你定义某个变量为BigInteger类型时,时不可以直接赋初值为0的,而是要将该值或者参数转换为指定的BigInteger类型
即:

   BigInteger i  = BigInteger.valueOf(0)

2.BigInteger的加减乘除等算术运算:
它的算术运算都不是用符号就可以运算,而是要调用以下方法进行运算:

BigInteger abs()  取绝对值

BigInteger add(BigInteger val) 加

BigInteger subtract(BigInteger val) 减

BigInteger multiply(BigInteger val) 乘

BigInteger divide(BigInteger val)  相除取整

BigInteger remainder(BigInteger val) 取余数

BigInteger gcd(BigInteger val)  最大公约数

BigInteger max(BigInteger val) 求最大值

BigInteger min(BigInteger val) 求最小值

BigInteger mod(BigInteger val) 用当前大整数对val求模

3.BigInteger的逻辑运算

-BigInteger negate() 求相反数

-BigInteger not() 求当前数的非

-BigInteger and(BigInteger val) 按位与

-BigInteger andNot(BigInteger val)  与非

-BigInteger or(BigInteger val) 按位或

-BigInteger xor(BigInteger val) 异或

4.BigInteger的幂

BigInteger pow(int exponent) 返回当前大整数的exponent次方

5.进制转换

String toString() 将当前大整数转换成十进制的字符串形式

//十进制的20转换成二进制
String string1 = new BigInteger(“20”, 10).toString(2);

//十进制的20转换成八进制
String string2 = new BigInteger(“20”, 10).toString(8);

6.输入

Scanner scan = new Scanner(System.in);
        BigInteger big = scan.nextBigInteger();
      System.out.println(big);
}

你可能感兴趣的:(学习,软件分享)