高精度算法
一、高精度加法:
高精度加法的实现原理:
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).输出结果
四、高精度除法实现
高精度除法实现原理:高精度除法这一块比较复杂,它可以分为两种情况:
第一种情况:高精除以低精,实际上就是对被除的每一位,包括前面的余数都除以除数。
构造函数是干什么的
该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,故:构造函数的作用:初始化对象的数据成员。
友元函数是干什么的
友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下:
friend 类型 函数名(形式参数);
static是什么
在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。
本文内容摘抄自: