高精度计算:算法与实现
需积分: 3 27 浏览量
更新于2024-07-30
收藏 123KB DOC 举报
"算法讲义——高精度计算"
在计算机科学中,高精度计算是指处理超出标准数据类型(如整型和浮点型)所能表示的数值范围的计算。这种计算通常涉及大整数或者需要极高精确度的数学运算。本文将主要探讨高精度计算中的三个关键问题:数据输入与储存、运算操作以及运算结果的输出。
1. 数据输入与储存:
- **输入方式**:高精度计算的输入通常包括整数或长整数、数字字符串、逐个数字输入(以特殊数结尾)和逐个数字字符输入(以非数字字符结尾)。在处理这些输入时,需要将字符或数字转换成适合计算的格式。
- **储存方式**:数据一般以数组形式储存,可以分为正向储存和反向储存。正向储存是数位权与数组下标同步增长,最高位在数组末尾;反向储存则是数位权与数组下标同步减小,最高位在数组开头。加法、减法和乘法通常使用正向储存简化运算过程,因为它们从低位开始计算。
2. 运算操作:
- **加法**:涉及进位操作,从低位到高位逐位相加,进位的处理是关键。
- **减法**:涉及借位操作,同样从低位开始,需要注意被减数小于减数的情况。
- **乘法**:需要考虑每一位与其他位的乘积以及如何累加进位。
- **除法**:通常涉及商和余数的计算,算法较为复杂,可能需要用到长除法。
3. 运算结果的输出:
- **输出处理**:输出时需注意储存方式,正向储存使用递增循环,反向储存使用递减循环。考虑到数组可能包含无效的前导零,需要在输出时去除这些零。如果使用单个字节储存多位数字,可能需要在输出时补零以保持正确格式。
在编写处理高精度计算的程序时,可能会遇到涉及正负数的情况。例如,在实现加减法时,可以通过逻辑变量控制运算类型,如`f1`用于区分加法和减法,`f`用于判断并输出数的符号。当两个数同号时,`f1`为假,执行加法;异号时,`f1`为真,执行减法。同时,`f`变量用来决定是否输出负号,当数值为负时,`f`为真,输出负号。
这样的算法设计允许程序灵活地处理各种高精度计算任务,不仅能够处理大整数,还能保证计算的精确性。对于进一步学习和实践,可以参考中级教材的相关章节,例如p.180和p.220~p.225,以深入理解加法、减法、乘法和除法的具体实现细节。通过编写实际的程序,如示例P12_10A,可以更好地理解和掌握高精度计算的要领。
2017-08-21 上传
2018-02-28 上传
2010-12-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
wangzi199767199767
- 粉丝: 0
- 资源: 1
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景