46、java.math.BigInteger类

本文详细介绍了BigInteger类的功能和使用方法,BigInteger是一种不可变的任意精度的整数类,提供了丰富的数学运算方法,如加减乘除等。此外,还通过示例代码展示了如何使用BigInteger进行基本的算术运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、BigInteger类

 

/**
 * BigInteger
 * 不可变的任意精度的整数。
 * 所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。
 * BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。
 * 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。 
 * 算术运算的语义完全模仿 Java 整数算术运算符的语义
 * 位移操作的语义扩展了 Java 的位移操作符的语义以允许产生负位移距离。带有负位移距离的右移操作会导致左移操作,反之亦然。忽略无符号的右位移运算符(>>>)
 * 提供的模算术操作用来计算余数、求幂和乘法可逆元
 */
public class BigInteger extends Number implements Comparable<BigInteger> 
{
	//构造方法

	/**
	 * 将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
	 * 该字符串表示形式包括一个可选的减号,后跟一个或多个十进制数字序列。
	 * 字符到数字的映射由 Character.digit 提供。该字符串不能包含任何其他字符(例如,空格)。 
	 */
	public BigInteger(String val){}

	public BigInteger(String val,
                  int radix){}//radix指定基数

	//常用方法

	//返回其值为 (this + val) 的 BigInteger。 
	public BigInteger add(BigInteger val){}

	//返回其值为 (this - val) 的 BigInteger。
	public BigInteger subtract(BigInteger val){}

	//返回其值为 (this * val) 的 BigInteger。
	public BigInteger multiply(BigInteger val){}

	//返回其值为 (this / val) 的 BigInteger。
	public BigInteger divide(BigInteger val){}

	//返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。 即返回商和余数
	public BigInteger[] divideAndRemainder(BigInteger val){}
}

 

二、示例

 

import java.math.*;
class  BigIntegerDemo
{
	public static void main(String[] args) 
	{
		String num1 = "2135484";
		String num2 = "0005";
		System.out.println(num1+" + "+num2+" = "+add(num1,num2));
		System.out.println(num1+" - "+num2+" = "+sub(num1,num2));
		System.out.println(num1+" * "+num2+" = "+mul(num1,num2));
		BigInteger[] bis = div(num1,num2);
		System.out.println(num1+" / "+num2+" = "+bis[0]+"余:"+bis[1]);
	}
	//加
	public static String add(String num1,String num2)
	{
		BigInteger bi1 = new BigInteger(num1);
		BigInteger bi2 = new BigInteger(num2);
		return bi1.add(bi2).toString();
	}
	//减
	public static String sub(String num1,String num2)
	{
		BigInteger bi1 = new BigInteger(num1);
		BigInteger bi2 = new BigInteger(num2);
		return bi1.subtract(bi2).toString();
	}
	//乘
	public static String mul(String num1,String num2)
	{
		BigInteger bi1 = new BigInteger(num1);
		BigInteger bi2 = new BigInteger(num2);
		return bi1.multiply(bi2).toString();
	}
	//除
	public static BigInteger[] div(String num1,String num2)
	{
		BigInteger bi1 = new BigInteger(num1);
		BigInteger bi2 = new BigInteger(num2);
		return bi1.divideAndRemainder(bi2);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值