




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高精度计算器高精度计算器算法思想介绍算法思想介绍算法要求算法要求 设计一个高精度计算器设计一个高精度计算器 可以实现一百位以上、五百位以下数的运可以实现一百位以上、五百位以下数的运算算 加法加法 减法减法 乘法乘法 除法除法数据逻辑结构数据逻辑结构 两个操作数均为线性结构两个操作数均为线性结构 结果也为线性结构结果也为线性结构数据存储结构设计数据存储结构设计 操作数和操作符均采用顺序存储结构(数操作数和操作符均采用顺序存储结构(数组)进行存储组)进行存储 数组类型可以是字符型(节省存储空间)数组类型可以是字符型(节省存储空间) 也可以是整数类型(运算方便)也可以是整数类型(运算方便) 以下以整
2、数数组为例以下以整数数组为例数据存储结构设计数据存储结构设计 操作数:设数组操作数:设数组A和数组和数组B为长度为为长度为500的的整型数组,下标从整型数组,下标从1开始。开始。 运算结果:设数组运算结果:设数组C也为长度为也为长度为500的整型的整型数组,下标从数组,下标从1开始。开始。操作数操作数A:操作数操作数B:结果结果C:下标:下标:1 2 3 4 500数据输入(数据输入(Data in) 将将A、B、C数组的每一位用数组的每一位用0填充填充 输入数据输入数据A和和B,他们的最后一位均存在下标为,他们的最后一位均存在下标为500的位置的位置末位对齐末位对齐 如:输入如:输入A为为1
3、2345 B为为123456789 存储结构为:存储结构为:操作数操作数A:操作数操作数B:下标:下标:1 2 495 496 497 498 499 5005432154321987654321加法运算加法运算 从末位开始,对应位进行加法:从末位开始,对应位进行加法:Ci=Ai+Bi+JW 若结果小于若结果小于10,直接存入数组,直接存入数组C中对应单元,中对应单元,JW=0 若结果大于等于若结果大于等于10,将其减,将其减10后的结果存入数组后的结果存入数组C中中对应位,并记进位位变量值为对应位,并记进位位变量值为1:JW=1。操作数操作数A:操作数操作数B:下标:下标:1 2 495 4
4、96 497 498 499 5005432154321987654321结果结果C:414JWW=111JW=1JW=0JW=0JW=0JW=0JW=0JW=0减法运算减法运算 从末位开始,对应位进行减法:从末位开始,对应位进行减法:Ci=Ai-Bi-JW(借位)(借位) 若结果大于等于若结果大于等于0,直接存入数组,直接存入数组C中对应单元,中对应单元,JW=0 若结果小于若结果小于0,ci=ci+10,并记,并记JW=1。操作数操作数A:操作数操作数B:下标:下标:1 2 495 496 497 498 499 50054321543219871结果结果C:6
5、-4JW=15501-5JW=1-5JW=1JW=0JW=0JW=0简单乘法运算简单乘法运算 将乘数的每一位单独拿出来(设为将乘数的每一位单独拿出来(设为X)乘以)乘以被乘数被乘数N位数乘位数乘1位数位数将该将该N位数位数累加累加X次即可。次即可。 注意:进位问题注意:进位问题 如:如:123451789操作数操作数A:操作数操作数B:下标:下标:1 2 495 496 497 498 499 50054321543219结果:结果:第一步:第一步:123459 调用调用9次次12345自加,得到:自加,得到:501111第二步:第二步:123458操作数操作数A:操作数操作数B:下标:下标:
6、1 2 495 496 497 498 499 50054321543218结果:结果:06789 调用调用8次次12345自加,得到:自加,得到: 将第二次的结果左移一位(将第二次的结果左移一位(10)后累加)后累加上第一次的结果上第一次的结果5011110678900789001 依次类推,直至所有乘数都乘完为止依次类推,直至所有乘数都乘完为止除法运算除法运算 此处只演示被除数大于除数的情况此处只演示被除数大于除数的情况 假设被除数有假设被除数有M位,除数有位,除数有N位(位(M=N) 第一步:从被除数的左边取出第一步:从被除数的左边取出N位,将其与位,将其与除数进行逐位比较,得出除数进行
7、逐位比较,得出大于大于或或等于等于或或小小于于三种结果。三种结果。 若结果是小于,再取被除数的下一位补上。若结果是小于,再取被除数的下一位补上。 第二步:将除数乘第二步:将除数乘2后与被除数比较,后与被除数比较,小于小于则再乘则再乘3,小于小于则再乘则再乘4,直至得到的直至得到的结果是结果是大于大于为止为止得到一个商(小于最得到一个商(小于最后一个乘数的整数)。后一个乘数的整数)。 第三步,将取出的第三步,将取出的部分被除数部分被除数(N位或位或N+1位的)减去除数乘以商的结果,得到位的)减去除数乘以商的结果,得到“余余数数”。 第四步,把余数作为新的被除数,将原除第四步,把余数作为新的被除数
8、,将原除数的剩余位补上。数的剩余位补上。 重复以上操作。重复以上操作。1234567892458=?12342458第一步:从被除数的左边取出第一步:从被除数的左边取出N位,将其与位,将其与除数进行逐位比较,得出除数进行逐位比较,得出大于大于或或等于等于或或小于小于三种结果。三种结果。以上结果为:小于以上结果为:小于1234567892458=? 被除数追加一位被除数追加一位1234524581234567892458=?2458 24916 123452458 37374 123452458 49832123452458 51229012345 得到第一个商:得到第一个商:5 用现在的被除数用现在的被除数12345减去减去24585的结果,的结果,得到余数得到余数12345 12290551234567892458=?1234567892458=? 从原被除数中乘余
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年软件工程师职业考题及答案
- 2025年市场调查与分析考试题及答案
- 2025年投资项目评估与管理考试题及答案
- 2025年工业机器人应用技术职业资格考试卷及答案
- 2025年高校计算机基础课程试题及答案
- 2025年地质灾害防治与管理考试试卷及答案
- 2025年法律职业资格考试试题及答案
- 2025年互联网工程师考试试题及答案
- 2025年环境心理学领域职业资格认证考试试卷及答案
- 2025年急救与应急救护专业考试题及答案
- 郑丽玲《彩墨游戏》说课x 课件
- 重点中成药品种含濒危野生动物药材调查表
- 2016年社区获得性肺炎(CAP)指南解读与抗生素应用
- 预应力混凝土连续梁张拉记录
- GB/T 41028-2021航空航天流体系统液压软管、管道和接头组件的脉冲试验要求
- 化工环境保护与及安全技术概论考试题及答案
- 领退转款账户确认书
- 精益生产精管理培训课件
- 钳工技能-刮削与研磨课件
- 浙大中控DCS系统AdvanTrol-Pro软件培训-编程综合编程案例课件
- 2021版《安全生产法》培训课件
评论
0/150
提交评论