`

自己写的大整数的加减乘除法JAVA实现--待完成

阅读更多
package chow.test;

/**
 * @author Chow
 * @date Jun 7, 2010
 * @Description 大整数的加法,减法,乘法,除法
 */

public class BigNumOperation {
	private static String result;
	
	//加法,从低位加起,逢十进一
	public static String add(String firstNum, String secondNum){
		result = "";
		int maxLength = firstNum.length() >= secondNum.length() ? firstNum.length() : secondNum.length();
		int index = maxLength - 1;
		int carry = 0;
		
		while(firstNum.length() < maxLength){
			firstNum = "0" + firstNum;
		}
		
		while(secondNum.length() < maxLength){
			secondNum = "0" + secondNum;
		}
		
		while(index >= 0){
			int firstInt = Integer.valueOf(firstNum.substring(index, index + 1));
			int secondInt = Integer.valueOf(secondNum.substring(index, index + 1));
			result += (firstInt + secondInt + carry) % 10;
			carry = (firstInt + secondInt + carry) / 10;
			index--;
		}
		
		if(carry != 0){
			result += carry;
		}
		
		return revert(result);
	}
	
	//减法,分三种情况:1.两者相等,返回0,2:大数减小数,小数补0,逐位减,借位;3:小数减大数,转化为2,加-号
	public static String minus(String firstNum, String secondNum){
		result = "";
		String sign = "";
		if(firstNum.equals(secondNum)){
			return "0";
		}
		//小数-大数,交换firstNum与secondNum,并符号置为-
		if(firstNum.length() < secondNum.length() 
				|| (firstNum.length() == secondNum.length() && firstNum.compareTo(secondNum) < 0)){
			sign = "-";
			String tmp = firstNum;
			firstNum = secondNum;
			secondNum = tmp;
		}
		//若小数(secondNum)不足位,高位补0
		while(secondNum.length() < firstNum.length()){
			secondNum = "0" + secondNum;
		}
		//大数从低位开始,逐位减小数
		int index = firstNum.length() - 1;
		int borrow = 0;	//记录借位
		while(index >= 0){
			int left = firstNum.charAt(index) - secondNum.charAt(index) + borrow;
			if(left < 0){
				borrow = -1;
				left += 10;
			}
			result = left + result;
			index--;
		}
		//去除多余的前导0
		while(result.indexOf("0") == 0){
			result = result.substring(1);
		}
		return sign + result;
	}
	
	//反转字符串
	public static String revert(String string){
		char[] charArray = new char[string.length()];
		for(int i = 0; i < string.length(); i++){
			charArray[i] = string.charAt(string.length() - 1 - i);
		}
		return new String(charArray);
	}
	
	public static void main(String[] args){
		System.out.println(BigNumOperation.add("4561427489456123", "798754564567343"));
		System.out.println(BigNumOperation.minus("5345435435", "543543543543"));
	}
}
 
分享到:
评论

相关推荐

    大整数加减乘除运算

    以上就是大整数加减乘除运算的基本原理和实现方法,实际应用中还需结合特定的编程语言和库,例如Python的`decimal`模块、Java的`BigInteger`类等,它们提供了封装好的大整数操作接口,方便开发者使用。

    大数的 加 减 乘 除 开方运算Java版

    本篇将详细介绍如何使用Java进行大数的加、减、乘、除以及开方运算。 首先,`BigInteger`类是Java标准库中专门用来处理任意精度整数的类,它可以存储和操作比`long`类型更大的数值。这个类提供了丰富的算术方法,...

    java 简单计算器(实现加、减、乘、除功能)

    本文将基于提供的代码片段详细介绍如何用Java实现一个简单的计算器,该计算器具备基本的数学运算功能:加、减、乘、除。此外,还将介绍相关的UI设计和事件处理机制。 #### 一、项目概述 该Java计算器程序能够实现...

    java编写一个类,该类可以进行加、减、乘、除四则运算,并且输出运算结果

    此外,对于除法,如果被除数为0,该类可以报错。对于加、减、乘、除之外的运算符,该类应该告知无法处理。 (2)编写一个包含主方法main的公共类(访问权限为public的类),主方法main中完成的任务是:从键盘上输入...

    Java编写的大整数四则运算

    Java语言通过内置的`BigInteger`类提供了解决方案,但本文档介绍的是一个自定义实现的Java程序,用于执行大整数的加、减、乘、除以及求最大公约数(GCD)和最小公倍数(LCM)的操作,而不会出现溢出问题。...

    Java实战项目:计算器应用程序 - 实现基本的数学运算功能

    - 需要编写四个函数,分别对应加法、减法、乘法和除法。这些函数接收两个浮点数作为参数,执行运算后返回结果。 通过以上步骤,我们可以创建一个基础的计算器应用程序,具备基本的数学运算功能。为了使程序更加...

    java计算器加减乘除取余等

    Java 语言程序设计课程设计报告中,设计了一款计算器,使其具有加减乘除取余等基础数学运算功能。该计算器的设计思想基于面向对象编程的原则,使用 Java 语言作为开发平台。 设计思想 在设计计算器时,首先需要...

    能完成正整数加减乘除的简易计算器

    这个题目中的“能完成正整数加减乘除的简易计算器”是一个基础的Java应用,它实现了基本的数学运算功能,包括加法(+)、减法(-)、乘法(*)和除法(/)。这个计算器可能包含了一个用户界面,允许用户输入两个正...

    java加减乘除计算器界面编程

    在这个“java加减乘除计算器界面编程”项目中,我们需要实现一个简单的计算器应用,具备加、减、乘、除四种基本运算功能,并且能够处理用户输入非数字字符时的异常。 首先,我们看到程序使用了`javax.swing`包来...

    大数加减乘类的实现

    本项目实现了一个大数加减乘的类,结合链表数据结构来存储和处理这些大数。 首先,我们来讨论大数的基本概念。在计算机中,常规的数据类型如int、long等都有其最大值和最小值限制,例如在Java中,int的最大值为2^31...

    定义一个类能进行任两个整数加减乘除,有两个私有成员并显示加减乘除的结果。

    本文将深入解析如何在Java中定义一个能够对任意两个整数执行加、减、乘、除运算的类,并展示如何设置私有成员变量以及调用这些运算方法来显示结果。 ### 类的设计与实现 #### 定义类:`Number` 首先,我们创建了一...

    JAVA--简单的计算器

    为了实现不同的计算功能,如加、减、乘、除,需要使用条件判断语句,如`if...else`或`switch`,来根据用户选择的操作执行相应的代码块。 6. **循环(Loops)**: 如果计算器还支持连续运算,可能会用到循环结构,...

    Java:接口实现两数的加减乘除

    在本例中,我们将探讨如何通过设计一个接口来实现两数之间的加、减、乘、除操作。 首先,我们创建一个名为`Calculator`的接口,该接口定义了四个方法:`add()`, `subtract()`, `multiply()`, 和 `divide()`,分别...

    高精度加减计算(链表)

    在计算机科学中,高精度计算是指处理非常大的数值,这些数值超过了...虽然乘除法的实现更复杂,但基本思路相同,都是基于位操作和适当的算法。对于需要高精度计算的应用,理解并掌握这些基本原理和技巧是至关重要的。

    写一个表示大整数(>2256)的对象( C++或Java),能实现 +,-,*,/(运算符重载)(

    在Java中,`java.math.BigInteger`类已经提供了大整数的支持,包括加减乘除等操作。但是,如果我们要从头开始实现一个大整数类,可以考虑以下方法: 1. 数据表示:大整数通常用数组或链表来存储,其中每个元素代表...

    当数值超过long位时的加减乘算法,表达式自动运算

    在标题和描述中提到的问题,即"当数值超过long位时的加减乘算法,表达式自动运算",主要涉及了大整数运算的处理方法。 首先,我们需要理解`long`类型的局限性。在Java中,`long`类型占用64位,可以表示的整数范围是...

    一个计算器的设计具有基本的加、减、乘、除等四则运算

    - 对于运算符按钮,如加、减、乘、除,记录操作类型并准备进行计算。 - 清除按钮(`clear`)用于清空输入框的内容。 - 点击等号按钮时执行实际的计算操作,并将结果显示在`textField`中。 5. **特殊处理** - 针对...

    计算器模拟程序java

    该程序旨在通过图形用户界面(GUI)实现整数的基本四则运算(加、减、乘、除)。根据描述,程序应该能够提供一个直观且易于使用的界面,使用户可以方便地进行计算。 #### 二、关键技术点 ##### 2.1 GUI设计与实现 ...

    图形用户编程.编写一个简单的计算器程序,要求有菜单,能进行简单的加减乘除运算。

    这个程序将具有菜单功能,并能够执行基本的加、减、乘、除运算。我们将使用Java Swing库来构建界面,并通过事件处理机制实现计算器的功能。 首先,我们需要导入必要的包,包括`javax.swing`和`java.awt`,这些包...

    Java 二十四点程序 24点程序 加减乘除24

    这个游戏的目标是通过加、减、乘、除四种基本运算,使得四个给定的1到13之间的数字组合的结果恰好等于24。程序的亮点在于它能够自动计算所有可能的运算组合,并过滤掉重复的结果,同时统计出满足条件的不同解的数量...

Global site tag (gtag.js) - Google Analytics