高精度算法

 

高精度算法,属于处理大数字的数学计算方法。 在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数。 高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。对于非常庞大的数字无法在计算机中正常存储,于是, 将数字拆开,拆成一位一位的,或者是四位四位的 存储到一个数组中, 用 一个数组去表示一个数字,这样这个数字就被称为是高精度数。 高精度算法就是能处理高精度数各种运算的算法,但又因其特殊性,故从普通数的算法中分离,自成一家。    

一、高精度加法:

    高精度加法的实现原理:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1、计算结果的位数
358934760892734899    共18位
38960302975237462      共17位
故结果不会超过19位。
2、将要计算的数字分割成多段,按照顺序排列(这里以0-32767作为每一存储单位存储的数的限制):

(为提高空间利用效率,可以一个存储单位存储多位数。)
3、将两数相加。

4、输出结果。
从高位到低位依次输出。除最高位以外,其他低位上不足4位的要在前面补上0。

二、高精度减法:

  高精度减法的实现原理:

   1.高精度减法相比高精度加法来说,稍微复杂一点,因为减法在差为负数时处理的细节更多一点:当被减数小于减数时,差为负数,差的绝对值是减数减去被减数;在程序实现上用一个变量来存储符号位,用另一个数组存差的绝对值。

   2.实现流程

(1).先比较大小

(2).决定输出符号,为正还是为负

(3).按位减法,并注意处理借位

三、高精度乘法实现

    高精度乘法实现原理:

   1.由于数字较大,无法使用简单的数据结构进行存储,选用数组和字符串来存储数字,字符串方便我们对于高位整数的输入,而整形数组的简便有利于每个位数的计算,结合两者优点便可实现高精度乘法。

    2.实现过程:

(1).通过两个字符串输入两个整数

(2).引入两个数组,将每个整数切割存储到数组里面

(3).进行每一位的运算

(4).处理进位

(5).输出结果

四、高精度除法实现

高精度除法实现原理:高精度除法这一块比较复杂,它可以分为两种情况:

第一种情况:高精除以低精,实际上就是对被除的每一位,包括前面的余数都除以除数。

 

 

构造函数是干什么的

该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,故:构造函数的作用:初始化对象的数据成员。

https://www.cnblogs.com/raichen/p/4752025.html

友元函数

https://zhidao.baidu.com/question/364343235.html

 

 

高精度算法 - KING_阿飞的博客 - CSDN博客


本文内容摘抄自:

高精度算法_百度百科

高精度加、减、乘、除算法实现详解 - fanyun的博客 - CSDN博客

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄