广告

原创 C语言 超大数相加

2019-3-12 22:48 551 4 3 分类: MCU/ 嵌入式 文集: C语言
source:https://blog.csdn.net/rtduq/article/details/79954816
大数指的是超过系统能处理的最大整数,比如32位系统int类型最大值是2147483647,但实际情况中我们需要处理的数据可能是20位、50位、100位,所以一般使用字符串而不是整型数来做运算,这里做的是最简单的加法,由加法我们后面可以扩展到减法、乘法、除法等。
#include "stdafx.h"
#include "stdio.h"
#include "string.h"

//1位加法,f表示进位
int addchar(char c1,char c2,int f,char &s){
int t=c1+c2+f;
if(t<106){
s=(char)(t-48);
return 0;
}else{
s=(char)(t-58);
return 1;
}
}
//大数相加
void bignumadd(const char* num1,const char* num2,char* sum){
size_t len1=strlen(num1),len2=strlen(num2),i=0;//得到输入字符串长度
int f=0;//用于保存进位
if(len1>len2){//如果第一个字符串长
//len2比较小,先遍历完
for(i=0;i
{
f=addchar(num1[len1-i-1],num2[len2-i-1],f,sum[i]);
}
//剩下部分
for(;i
{
f=addchar(num1[len1-i-1],'0',f,sum[i]);//第一个字符串多出来的直接和0加
}
}else{//如果第二个字符串长
for(;i
f=addchar(num1[len1-i-1],num2[len2-i-1],f,sum[i]);
}
for(;i
f=addchar('0',num2[len2-i-1],f,sum[i]);//第二个字符串多出来的直接和0加
}
}
//别忘记最高位还可能会进位
for(;f>0;++i){
f=addchar('0','0',f,sum[i]);
}
}
void showsum(const char* s){//显示计算结果
size_t len=strlen(s);
for(int i=len-1;i>-1;--i){//从最后一位开始逆序输出
putchar(s[i]);
}
}
int main() {
const char* num1="8799999999999999999";
const char* num2="9999888888888888";
char s[100000]={0};//分配栈空间存放结果
bignumadd(num1,num2,s);
showsum(s);
getchar();
return 0;
}
广告

文章评论 2条评论)

登录后参与讨论

zhanglii2011_392530165 2019-3-19 14:53

https://gmplib.org/ 包含各种加减乘除

443955496_148404734 2019-3-15 15:20

学习,谢谢分享
相关推荐阅读
毛大闲 2019-05-16 21:41
增加无人机控制距离的骚操作 - 4 不同网络下信息互通
         前面一节我们实现了在安卓系统中同时使用wifi和4G,现在我们要解决的问题是实现信号中转的具体功能。网络结构如下:  &n...
毛大闲 2019-05-14 13:34
【我与电子】非正经工程师的七年之痒
         有科学家做过研究,说人体细胞由于新陈代谢,每7年所有细胞都会换新一遍。也就是说,现在的你与7年前的你可能从内到外都是“全新”的。翻了...
毛大闲 2019-05-14 09:57
VLAN实验 - 1 基本设置
一、VLAN简介          VLAN(Virtual Local Area Network)的中文名为"...
毛大闲 2019-05-12 15:36
增加无人机控制距离的骚操作 - 3 在安卓上实现wifi与4G共用
         HI,大家好,休息了一段时间后终于有空来继续我们的骚操作。前面一节讲的是整体的网络结构,这里我们就要具体实现如何在安卓系统里同时访问...
毛大闲 2019-04-26 15:33
增加无人机控制距离的骚操作 - 2 指令中转的网络结构
         大家好,很久没更新了,因为要解决在手机上同时使用wifi和4G信号着实花了我一周的时间。前一节说了下大概构思,可行的办法有三种: ...
毛大闲 2019-04-19 11:13
增加无人机控制距离的骚操作 - 1 构思
         HI又是我,剪影的那个整了一段时间,实现基本功能后感觉一阵空虚挺没意思的所以弃坑了。最近买了个大疆无人机(Tello),没注意介绍看...
我要评论
2
4
广告
关闭 热点推荐上一条 /1 下一条