您的位置:首页 > 编程语言 > Java开发

Java 大数高精度函数(BigInteger)

2017-12-19 15:28 477 查看
Java 提交格式

import .. 头文件 ..

public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){   // 等同于 !=EOF
T = cin.nextInt();
}
}
}


头文件:

java.util.Scanner;
java.math.BigInteger;
java.math.BigDecimal;


大数运算时要使用相关的方法而不能使用运算符 如:(+ - * / ..)

BigInteger 大 ——— 整数

BigInteger m = new BigInteger( String );


BigDecimal 大 ——— 浮点数 //不适合于大量的数学运算

BigDecimal m = new BigDecimal( String );


基本函数:

    BigInteger n = new BigInteger( String );
BigInteger m = new BigInteger( String );
toString(void); => BigInteger -> String
n = BigInteger.valueOf(k); => n = k - - - - - - BigInteger.ZERO/ONE..
n.add(m); => n + m
n.subtract(m); => n - m
n.multiply(m); => n * m
n.divide(m); => n / m 整除
n.remainder(m); n.mod(m); => n % m
int[] a = n.divideAndRemainder(m); => a[0] = n / m; a[1] = n % m
n.pow(m); => n ^ m n的m次幂
n.gcd(m); => gcd(n,m)
n.abs(); => abs(n)
n.negate(); => -n
n.signum(); => n = 0 return 0
n < 0 return -1
n > 0 return 1
n.shiftLeft(k); => n << k 移位运算
n.shiftRight(k); => n >> k

n.isProbablePrime(); => 判断是否为素数

n.compareTo(m); => n < m return -1 比较方法
n > m return 1
n = m return 0
n.equals(m); => n == m return 1

n.min(m); => return min(n, m)
n.max(m); => return max(n, m)
n.intValue(); n.longValue(); n.floatValue(); n.doubleValue();
=> change BigInteger to int / long / float / double

bit_operation: 位运算

n.and(m); => n & m 且
n.or(m); => n | m 或
n.xor(m); => n xor m 异或
n.not(); => !n 非
n.bitLength(); => 二进制位数 (补码-正数的补码为其自身)
n.bitCount();


进制转换:

String string = new java.math.BigInteger(String num, int from).toString(int to);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: