测试二长整数四则运算

测试二长整数四则运算

ID:36771016

大小:217.91 KB

页数:22页

时间:2019-05-15

测试二长整数四则运算_第1页
测试二长整数四则运算_第2页
测试二长整数四则运算_第3页
测试二长整数四则运算_第4页
测试二长整数四则运算_第5页
资源描述:

《测试二长整数四则运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、18实验二长整数四则运算一、实验目的通过长整数的四则运算,帮助学生熟练掌握双向链表的基本操作及用双向链表解决具体问题的基本方法。二、实验内容(1)用双向链表实现长整数的存储(2)实现两个长整数的相加运算(3)实现两个长整数的相减运算(4)实现两个长整数的相乘运算(5)实现两个长整数的相除运算三、实验原理1、长整数定义长整数指其值超过选定的计算机机型和计算机语言所能表示的最大整数的范围的整数。2、长整数的表示将一个长整数表示成多个整数,每个整数值都在选定的机型和计算机语言所能表示的整数的范围内。然后对所有整数按与长整数从高位到

2、地位的对应关系进行组合和排列,就得到对应的长整数的表示。15表示方法选择:在16位机中,一个基本整型变量可表示的最大整数为32767(2-1),如果以32767作为整数的基本单位来表示长整数,则两个整数的相加、相乘都会出现溢出,同时将这样的整数序列组合成长整数的排列形式,需要将32767进制数转换成十进制数,十分不方便。如果表示长整数的整数基本单位选得太小,表示一个长整数的整数个数将很多,会增加计算的时间。因此,整数基本单位的数据范围选择既要考虑转换成十进制数方便,又要尽可能减少计算工作量。解决方案:用4位十进制整数表示整数

3、基本单位,一个整数基本单位表示的数据范围是0~9999,即一个长整数可以表示为万进制数为基本单位的整数序列。依据:(1)为了使得用整数基本单位表示的整数可以方便地转换为长整数的表示形式,必须使整数基本单位中表示的每一位数可以取十进制数字的任何一个数,为了计算效率又必须是最大。一个16位二进制可以表示一个5位十进制整数,但其十进制整数最高位的取值不是10个数字的全集,而是它的子集。所以取5位十进制整数作为表示长整数的基本单位不合适,取4位是合适的选择。(2)两个整数基本单位所表示的整数的加、减、乘、除运算的结果必须用一个程序设

4、19计语言所提供的数据类型精确表示。4位十进制整数所表示的整数的加、减、除运算的结果不会超过一个16位二进制数所表示的整数范围。两个4位十进制整数相乘的结果可以用C语言提供的长整型数据类型精确表示。3、长整数的存储结构将一个长整数表示成4位十进制整数表示的整数序列,可以用顺序表实现,也可以用链表实现。一个长整数究竟有多少位十进制数,一般是随机的。用链表表示具有很大的灵活性。按照整数四则运算法则,加、减、乘运算总是从低位开始,向高位移动进行。但在减运算过程中,若被减数位小于减数位,需要向高位借位(可能存在一次向前面若干个高位借

5、位问题),然后再对低位进行减运算,即存在双向操作。在链表结构中,长整数的加、减、乘运算总是从低位结点开始,向高位结点移动。对于减运算也存在类似问题。为了方便链表结构的双向操作要求,采用双向链表来表示长整数。对于减运算,需要比较两个整数绝对值的大小,运算总是用绝对值大的数做被减数,绝对值小的数做减数。对于除运算,总是用减运算或加运算来实现,通过比较两个数绝对值的大小来确定运算是否结束。为了便于比较两个长整数的大小,可以记录一个长整数的位数和结点数。当结点数不同时,结点数多的长整数绝对值大。当结点数相同时,位数多的为大。只有结点

6、数和位数相同时才逐个结点进行比较。为了具有普遍性,考虑长整数是有符号的。约定用0表示正整数,用1表示负整数,长整数的值用原码表示。双向链表设立一个头结点,用于表示整数的符号、位数和结点数。为了便于正向处理和逆向处理双向链表,头结点要设置指向链表第一个元素结点和指向尾结点的指针。双向链表的结点结构可描述为:typedefstructNODE{intdata;structNODE*next;structNODE*prior;}NODE;双向链表的头结点结构可描述为:typedefstructFrontNode{intLength

7、;//长整数位数intNodeCount;//长整数结点数intSign;//长整数符号,0-正数,1-负数NODE*head;NODE*tail;}DULLINK;204、长整数运算原理长整数运算的基本原理与笔算整数计算的基本原理相同。如整数的加、减、乘运算,若用笔进行演算,总是按整数从低位到高位对齐,然后从低位到高位一位一位地进行计算。对于加、乘运算,每一位的计算总是将两个对应位进行计算,再加上低位计算的进位数,把计算结果的低位作为本次对应位的值,高位作为下一次高位计算的进位数。无论是加还是乘,只可能产生一个进位位。如整

8、数123456与98765的加运算是:123456----被加数+98765----加数11111----进位数――――――――――――――222221----结果相乘运算的过程是:123456×98765―――――――――――――――――――――611172228307142027333

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

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

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