其实除了Python,Ruby之外,Java也有高精度,只不过封装在类中. Java有两个高精度类:BigInteger和BigDecimal,分别是高精度整数和高精度小数.文中是bava
结构
BigInteger类只能从字符串中构建。 例如,
bigintegera=newbiginteger('233 );
要在扫描仪中导入BigInteger,可以写:
scanners can=new scanner (system.in );
bigintegera=newbiginteger (scan.next );
函数
所有运算都是通过函数实现的,因为Java不支持重载运算符。
bigintegeradd (二进制)//和
bigintegersubtract (bigintegerval )//减法
求bigintegermultiply (bigintegerval )//积
bigintegerdivide(bigintegerval )//求商
bigintegermod(bigintegerval )//取模
求bigintegerremainder (bigintegerval )//馀数
bigintegerpow(intexponent ) /求幂
BigInteger abs绝对值
寻求bigintegergcd (二进制) gcd
求出bigintegermax(bigintegerval )//较大的值
求出比bigintegermin(bigintegerval ) /小的值
BigInteger negate相反数
bigintegerleftshift(intn )//向左移动
bigintegerrightshift(intn )//向右移动
bigintegerand(bigintegerval ) /求和
采取bigintegerandnot(bigintegerval ) /要求和反)
求出bigintegeror(bigintegerval )//或
bigintegerxor (二进制) /与众不同或
BigInteger not ()//取反
转至int intValue ()//int
转到长长值()长
转至双精度双精度//双精度
转至浮动浮动值()浮动
byte [ ] to bytearray (bigintegerval ) /转换为byte数组()基本实现由byte数组的反码组成) )
转动String toString ()//字符串
最后,BigInteger位于java.math库中。
代码
import java.util.*;
import java.io.*;
import java.math.BigInteger;
公共类主{
publicstaticvoidmain (字符串[ ] args ) {
scanners can=new scanner (system.in );
bigintegera=newbiginteger (scan.next )、b=newbiginteger (scan.next );
系统. out.println (a.add ) b );
system.out.println (a.subtract (b ) );
system.out.println (a.multiply (b ) );
系统. out.println (a.divide (b ) );
系统. out.println (a.mod (b ) );
}
}