在java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,从原则上是可以表示“天文单位”一样大的数字咯,但有一个缺点就是比较费内存
add()方法; 相加
BigInteger c=new BigInteger("6");
BigInteger d=new BigInteger("3");
System.out.println("c+d="+c.add(d));
//答案输出: c+d=9
subtract()方法,相减,运用时前者减后者
BigInteger c=new BigInteger("5");
BigInteger d=new BigInteger("3");
System.out.println("d-c="+d.subtract(c));
//答案输出: d-c=-2
multiply()方法,相乘,
BigInteger c=new BigInteger("6");
BigInteger d=new BigInteger("3");
System.out.println("c*d="+c.multiply(d));
//答案输出: c*d=18
divide()方法,做除法,
BigInteger c=new BigInteger("6");
BigInteger d=new BigInteger("4");
System.out.println("c/d="+c.divide(d));
// 答案输出;c/d=1
remainder()方法,大整数取余
BigInteger x = new BigInteger("10");
BigInteger y = new BigInteger("8");
BigInteger z = x.remainder(y);
System.out.println("x%y="+z);
//答案输出:x%y = 2
pow()方法,取指数,例如a.pow(b)==a^b;
这里的b只能是int类型,不可以是BigInteger类型
BigInteger x = new BigInteger("2");
BigInteger z = x.pow(3);
System.out.println("x^3="+z);
//答案输出:x^3 = 8
gcd()方法,取最大公约数
BigInteger x = new BigInteger("8");
BigInteger y = new BigInteger("4");
BigInteger z = x.gcd(y);
System.out.println(z);
//答案输出:4
abs()方法,这个函数的作用是取绝对值
BigInteger c=new BigInteger("-9");
System.out.println(c.abs());
//答案输出: 9
negate()方法,取数的相反数
BigInteger c=new BigInteger("9");
System.out.println(c.negate());
// 答案输出: -9
mod()方法; 进行取余 a.mod(b)=a%b=a.remainder(b);
BigInteger x = new BigInteger("10");
BigInteger y = new BigInteger("4");
BigInteger z = x.mod(y);
System.out.println(z);
//答案输出:2
max()方法,min()方法,分别是比较两个数的大小
BigInteger x = new BigInteger("10");
BigInteger y = new BigInteger("4");
BigInteger z = x.max(y);//x.min
System.out.println(z);
//答案输出:10
compareTo()方法比较两个大整数大小的,返回boolen
返回一个int型数据(1 大于; 0 等于; -1 小于)
BigInteger x = new BigInteger("10");
BigInteger y = new BigInteger("4");
int z = x.compareTo(y);
System.out.println(z);
//答案输出:1
equals()方法,判断两个大整数是否相等,返回boolen
BigInteger x = new BigInteger("10");
BigInteger y = new BigInteger("4");
boolean z = x.equals(y);
System.out.println(z);
//答案输出:false
类型转换方法
public void testToAnother() {
BigInteger bigNum = new BigInteger("38");
int radix = 2;
//1.转换为bigNum的二进制补码形式
byte[] num1 = bigNum.toByteArray();
//2.转换为bigNum的十进制字符串形式
String num2 = bigNum.toString(); //38
//3.转换为bigNum的radix进制字符串形式
String num3 = bigNum.toString(radix); //100110
//4.将bigNum转换为int
int num4 = bigNum.intValue();
//5.将bigNum转换为long
long num5 = bigNum.longValue();
//6.将bigNum转换为float
float num6 = bigNum.floatValue();
//7.将bigNum转换为double
double num7 = bigNum.doubleValue();
}
————————————————
版权声明:本文为CSDN博主「码界猿候」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
参考文章链接:https://blog.csdn.net/qq_49174867/article/details/123587380