A-A+

高精度计算

2019年08月01日 百科 暂无评论
摘要:

高精度计算\n\n高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如32位CPU中一个整数最大只能取值4,294,967,295。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入。通过数组倒序输出。通过模拟竖式计算进行计算。一般而言,主要模拟的是按位运算,可以用不同的进位制达成不同

高精度计算\n\n高精度计算是一种程序设计的算法。由于中央处理器的字长限制,如32位CPU中一个整数最大只能取值4,294,967,295。因此在进行更大范围的数值计算中,往往要采取模拟手段。通常通过分离字符的方法通过数字数组进行输入。通过数组倒序输出。通过模拟竖式计算进行计算。一般而言,主要模拟的是按位运算,可以用不同的进位制达成不同的目的。\n\n有许多程式库支援高精度计算,最著名的是GNU多重精度运算库。\n\n\n高精度加法是信息学的一种重要算法。这种算法使用多个存储单位进行计算,因此它的计算范围超过一般使用一个存储单位的算法。也是一些信息学竞赛的常考题目。\n\n以358934760892734899+38960302975237462为例:\n\n1、计算结果的位数\n\n358934760892734899共18位\n\n38960302975237462 共17位\n\n故结果不会超过19位。\n\n2、将要计算的数字分割成多段,按照顺序排列(这里以0-32767作为每一存储单位存储的数的限制):\n\n(为提高空间利用效率,可以一个存储单位存储多位数。)\n\n3、将两数相加。\n\n4、输出结果。\n\n从高位到低位依次输出。除最高位以外,其他低位上不足4位的要在前面补上0。\n\npascal:\nc++:\nusing namespace std;\n\nshort a[510],b[510];\nchar ca[510],cb[510];\nshort ans[510];\nshort len;\n\nvoid add(short a[],short b[])\n\nshort zhuan(char a)\n\nint main()\n\n高精度加法:\n\nOpenJudge:http://noi.openjudge.cn/ch0106/10/\n\n洛谷:https://www.luogu.org/problemnew/show/P1601\n\n高精度加法\n\n高精度减法\n"}

标签:

给我留言

网站地图 Copyright © 2019 百科知识  

用户登录