高精度算法(C语言)

本文介绍了高精度算法的原理和应用,包括如何处理超过常规类型范围的大数字,通过字符数组存储数据,以及模拟竖式计算进行加法、减法和乘法运算。此外,还展示了高精度阶乘和的计算方法,结合了高精度加法和乘法的思路。

高精度算法的介绍

        有时候,我们不免会遇到一些数据,它的范围超过了计算机本身所定义的int型和long型所能表示的范围,但我们又需要对这些数进行相应的运算,这时我们便需要用到高精度算法。

         高精度处理,实际上就是模拟法,模拟手算,它的原理与我们用竖式计算时一样的,不过在处理过程中要注意高精度数据的读入、转换储存、数据的计算、结果位数的计算、输出等几个问题。高精度计算中需要处理如下几个问题:

        1.数据的输入:由于数据都是十分大的数字,我们采用字符数组将它们接收。

        2.数据的存储和计算:由于我们是直接通过字符数组将我们的数据存储的,不能够将它们直接进行计算,所以我们还需要转换存储方式,把字符串数组的数据存储到int型的数组里。(将数据存入整形数组时,可以将数组下标为1对应个位,也可以直接对应最高位。本文采取第一种方式。)

        3.模拟竖式计算:无论是加减,还是乘除,都需要模拟竖式计算。竖式计算中,我们需要将每一位上的数对其,然后再进行加或减的运算,来最终确定每一位上的数,同时加法遵守逢十进一,减法数位不够减时向前借一。

高精度加法

代码展示

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(){
	char t1[502], t2[502];
	int i, j, k = 0, l1, l2, l3, max, f, s1[502] = {0}, s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值