- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万进制高精度运算( C++语言)
目前在青少年信息学奥林匹克竞赛中所涉及到的高精度计算包括加 (addition) 、减 (subtract) 、乘
(multiply) 、除 (divide) 四种基本运算。其中 乘法分高精度数乘高精度数和单精度数乘高精度数 两种,
除法一般指两个单精度数相除 ,求解最终指定精度的解,找出循环节或输出指定精度位数的小数。
(注:高精度数与单精度数均指整数 )
主要的解题思想是利用在小学就曾学习过的 竖式加减乘除法则 ,用程序语言实现存在的问题主要有
如何 存储高精度数的值 ,如何实现计算等问题。
一 . 高精度数字的存储
我们日常书写一个高精度数字,左侧为其高位,右侧为其低位,在计算中往往会因 进位( carry )或
借位( borrow )导致高位增长或减少 ,因此我们 定义一个整型数组( int bignum[maxlen] )从低位向高
位实现高精度整数的存储 ,数组的每个元素存储高精度数中的一位。(如下表所示)
高精度数 3 (高位) ,, 7 9 4 (低位)
int bignum[i] n ,, 2 1 0
显然, 在 C++语言中, int 类型( 4 个字节 /32 位计算机)元素存储十进制的一位数字非常浪费空
间,并且运算量也非常大,因此常将程序代码优化为万进制, 即数组的每个元素存储高精数字的四位 。
在后面的叙述过程中均以万进制为例介绍。(为什么选择万进制,而不选择更大的进制呢?十万进制中
的最大值 99999 相乘时得到的值是 9999800001 超过 4 个字节 的存储范围而溢出,从而导致程序计算错
误。)
在实际编写程序代码过程中常作如下定义:
const int base=10000;
const int maxlen=1000+1;
int bignum[maxlen];
说明: base 表示进制为万进制, maxlen 表示高精度数的长度, 1 个元素能存储 4 个十进制位, 1000 个元
素就存储 4000 个十进制位, 而加 1 表示下标为 0 的元素另有它用,常用作存储当前高精度数字的位数。
二 . 各种运算的程序实现
(一)加法:
首先回顾一下小学中曾学习的竖式加法,见图一:
bignum1[] 9475 46 1243
bignum2[] 918 1324 341
carry 1 0 0 0
bignum_ans[] 1 393 1370 1584
图一 加法的计算过程
从上面的图中我们可以得知,做加法运算是从低位向高位进行,如果有进位,下一位进行相加时要
加上进位,如果最高位已计算完还有进位,就要增加存储结果的位数,保存起进位来。关于进位的处
理,往往定义单独变量 carry 进行存储,程序实现的过程如图二所示:
初始化
进位 carry 赋初始值 0,结果的
位数为两个加数的 最大位数。
Y N
当前位超过最高 还有进位
位了? 么?
您可能关注的文档
最近下载
- 指南中国斑秃诊疗指南.pdf VIP
- 党建工作问题自查清单100例.docx VIP
- 清远市佛冈县医疗卫生共同体招聘事业单位人员考试真题2024.docx VIP
- 消防维修合同协议书范本.docx VIP
- 学生用品的安全通用要求(GB21027-2020).docx VIP
- 2025年全国中级养老护理员职业技能A证考试题库(含答案) .pdf VIP
- 实验室装修工程验收方案(3篇).docx VIP
- 芯片设计 CMOS模拟集成电路设计与仿真实例基于Cadence IC 617 课件全套 李潇然 第1--9章 CMOS模拟集成电路设计流程简介、ADE仿真概述--- 模-数转换器.pptx
- 规培医师年度总结报告.pptx VIP
- 2023年清远市清城区医疗卫生共同体总医院招聘事业单位工作人员考试真题及答案.pdf VIP
文档评论(0)