下载此文档

高精度运算c语言.ppt


文档分类:IT计算机 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
高精度运算
内蒙古师范大学计算机与信息工程学院
孟繁军
1
精选课件
运算的前提条件:类型范围
确定各类型的取值范围
int: -2,147,483,648——2,147,483,647
unsigned int: 0 to 4,294,967,295
long int:-2,147,483,648 to 2,147,483,647
long long: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float: +/- 38 (7 digits)
double: +/- 308 (15 digits)
long double: +/- 4932 (19 digits)
2
精选课件
高精度运算的基本方法
1、加数、减数、运算结果的输入和存储 运算因子超出了整型、实型能表示的范围,肯定不能直接用一个数的形式来表示。在运算过程中,能表示多个数的数据类型有两种:数组和字符串。
(1)数组:每个数组元素存储1位(在优化时,这里是一个重点!),有多少位就需要多少个数组元素;用数组表示数的优点:每一位都是数的形式,可以直接加减;运算时非常方便用数组表示数的缺点:数组不能直接输入;输入时每两位数之间必须有分隔符,不符合数值的输入****惯;
(2)字符串:字符串的最大长度是多少,可以表示多少位数字? 用字符串表示数的优点:能直接输入输出,输入时,每两位数之间不必分隔符,符合数值的输入****惯; 用字符串表示数的缺点:字符串中的每一位是一个字符,不能直接进行运算,必须先将它转化为数值再进行运算;运算时非常不方便;
(3)因此,综合以上所述,对上面两种数据结构取长补短:用字符串读入数据,用数组存储数据:
3
精选课件
高精度运算的运算过程
在往下看之前,大家先列竖式计算35+86。 注意的问题: (1)运算顺序:两个数靠右对齐;从低位向高位运算;先计算低位再计算高位; (2)运算规则:同一位的两个数相加再加上从低位来的进位,成为该位的和;这个和去掉向高位的进位就成为该位的值;如上例:3+8+1=12,向前一位进1,本位的值是2;可借助取余、整除运算完成这一步; (3)最后一位的进位:如果完成两个数的相加后,进位位值不为0,则应添加一位; (4)如果两个加数位数不一样多,则按位数多的一个进行计算;
4
精选课件
高精度的十进制算
一般形式:
输入时为数串
转化为整数数组(该数组的每一个元素对应一位十进制数,并使用一变量记录数组的实际长度,即数组元素有效个数)
转化方法:
memset(a,0,number*sizeof(int));
k=length(s);
for(i=1;i<=k;i++)
a[k-i+1]=s[i]-’0’;
5
精选课件
加法运算
确定a和b中的最大位数x(x=max{la,lb})
依照由低位至高位(第1位至第x位)的顺序进行加法运算。
在每一次的运算中,a当前位加b当前位的和除以10,其商即为进位,其余数即为和的当前进位。
在进行了x位的加法后,若最高位有进位(a[x+1]<>0),则a的长度为x+1。
6
精选课件
加法运算算法
/*实现a=a+b*/
void add(int a[],int b[])
{
int i,x;
if (la>=lb)
x=la;
else
x=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;
}
while(a[x+1]<>0)
x=x+1;
la=x-1;
7
精选课件
减法运算
依照由低位至高位(第1位至第la位)的顺序进行减法运算。
在每一次的减法运算中,若出现不够减的情况(a[i]<b[i]),则向高位借位(a[i+1]=a[i+1]-1, a[i]=a[i]+10)。
在进行了la位的减法后,若最高位为零(a[la]=0),则a的长度减1。
8
精选课件
减法运算算法
/*a=a-b*/
void sub(int a[],int b[])
{
int i;
for(i=1;i<=la;i++)
{
if(a[i]<b[i])
{
a[i+1]=a[i+1]-1;
a[i]=a[i]+10;
}
a[i]=a[i]-b[i];
}
while (a[la]==0) la- -;
}
9
精选课件
乘法运算
按照乘法规则,从

高精度运算c语言 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人相惜
  • 文件大小47 KB
  • 时间2020-11-11
最近更新