高精度运算c语言.ppt

高精度运算c语言.ppt

ID:58241895

大小:210.00 KB

页数:20页

时间:2020-09-06

高精度运算c语言.ppt_第1页
高精度运算c语言.ppt_第2页
高精度运算c语言.ppt_第3页
高精度运算c语言.ppt_第4页
高精度运算c语言.ppt_第5页
资源描述:

《高精度运算c语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、高精度运算内蒙古师范大学计算机与信息工程学院孟繁军运算的前提条件:类型范围确定各类型的取值范围int:-2,147,483,648——2,147,483,647unsignedint:0to4,294,967,295longint:-2,147,483,648to2,147,483,647longlong:-9,223,372,036,854,775,808to9,223,372,036,854,775,807float:3.4E+/-38(7digits)double:1.7E+/-308(15digits)longdouble:1.2E+

2、/-4932(19digits)高精度运算的基本方法1、加数、减数、运算结果的输入和存储 运算因子超出了整型、实型能表示的范围,肯定不能直接用一个数的形式来表示。在运算过程中,能表示多个数的数据类型有两种:数组和字符串。(1)数组:每个数组元素存储1位(在优化时,这里是一个重点!),有多少位就需要多少个数组元素;用数组表示数的优点:每一位都是数的形式,可以直接加减;运算时非常方便用数组表示数的缺点:数组不能直接输入;输入时每两位数之间必须有分隔符,不符合数值的输入习惯;(2)字符串:字符串的最大长度是多少,可以表示多少位数字? 用字符串表示数

3、的优点:能直接输入输出,输入时,每两位数之间不必分隔符,符合数值的输入习惯; 用字符串表示数的缺点:字符串中的每一位是一个字符,不能直接进行运算,必须先将它转化为数值再进行运算;运算时非常不方便;(3)因此,综合以上所述,对上面两种数据结构取长补短:用字符串读入数据,用数组存储数据:高精度运算的运算过程在往下看之前,大家先列竖式计算35+86。 注意的问题: (1)运算顺序:两个数靠右对齐;从低位向高位运算;先计算低位再计算高位; (2)运算规则:同一位的两个数相加再加上从低位来的进位,成为该位的和;这个和去掉向高位的进位就成为该位的值;如上

4、例:3+8+1=12,向前一位进1,本位的值是2;可借助取余、整除运算完成这一步; (3)最后一位的进位:如果完成两个数的相加后,进位位值不为0,则应添加一位; (4)如果两个加数位数不一样多,则按位数多的一个进行计算;高精度的十进制算一般形式:输入时为数串转化为整数数组(该数组的每一个元素对应一位十进制数,并使用一变量记录数组的实际长度,即数组元素有效个数)转化方法:memset(a,0,number*sizeof(int));k=length(s);for(i=1;i<=k;i++)a[k-i+1]=s[i]-’0’;加法运算确定a和b中

5、的最大位数x(x=max{la,lb})依照由低位至高位(第1位至第x位)的顺序进行加法运算。在每一次的运算中,a当前位加b当前位的和除以10,其商即为进位,其余数即为和的当前进位。在进行了x位的加法后,若最高位有进位(a[x+1]<>0),则a的长度为x+1。加法运算算法/*实现a=a+b*/voidadd(inta[],intb[]){inti,x;if(la>=lb)x=la;elsex=lb;for(i=1;i<=x;i++){a[i]=a[i]+b[i];a[i+1]=a[i+1]+a[i]/10;a[i]=a[i]%10;}whi

6、le(a[x+1]<>0)x=x+1;la=x-1;减法运算依照由低位至高位(第1位至第la位)的顺序进行减法运算。在每一次的减法运算中,若出现不够减的情况(a[i]

7、a[i]-b[i];}while(a[la]==0)la--;}乘法运算按照乘法规则,从a的第1位开始逐位与C相乘。在第i位乘法运算中(1≤i≤la),a的i位与C的乘积必加上i-1位的进位(i-1位的乘积除以10的整商),然后规整积的i-1位(取i-1位的乘积对10的余数)。乘法运算算法voidmultiply(inta[],intc){inti;a[1]=a[1]*c;for(i=2;i<=la;i++){a[i]=a[i]*c;a[i]=a[i]+a[i-1]/10;a[i-1]=a[i-1]%10;}While(a[la]>=10){

8、la=la+1;a[la]=a[la-1]/10;a[la-1]=a[la-1]%10;}}改善的高精度运算的效率以上的方法的有明显的缺点: (1)浪费空间:一个整

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。