原创 C语言 超大数相加

2019-3-12 22:48 2222 18 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);
}
//剩下部分
for(;i
{
f=addchar(num1[len1-i-1],'0',f,sum);//第一个字符串多出来的直接和0加
}
}else{//如果第二个字符串长
for(;i
f=addchar(num1[len1-i-1],num2[len2-i-1],f,sum);
}
for(;i
f=addchar('0',num2[len2-i-1],f,sum);//第二个字符串多出来的直接和0加
}
}
//别忘记最高位还可能会进位
for(;f>0;++i){
f=addchar('0','0',f,sum);
}
}
void showsum(const char* s){//显示计算结果
size_t len=strlen(s);
for(int i=len-1;i>-1;--i){//从最后一位开始逆序输出
putchar(s);
}
}
int main() {
const char* num1="8799999999999999999";
const char* num2="9999888888888888";
char s[100000]={0};//分配栈空间存放结果
bignumadd(num1,num2,s);
showsum(s);
getchar();
return 0;
}
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

zhanglii2011_392530165 2019-3-19 14:53

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

443955496_148404734 2019-3-15 15:20

学习,谢谢分享
相关推荐阅读
布兰姥爷 2023-04-21 23:07
跟姥爷深度学习4 从数学计算看神经网络
一、前言我们前面简单的做了一个气温预测,经过反复调试,效果还不错。实际上在这个方向上我们还可以更进一步优化,但因为我们是学习嘛,主要还是看广度而不是深度。考虑到后面要开始学习卷积网络,我们必须把更基础...
布兰姥爷 2023-04-21 23:04
跟姥爷深度学习3 神经网络的调试实操
一、前言前面我们做了一次天气预测的模型,训练的结果都还好,网络好歹是“拟合”了,但预测数据不合预期让我一直耿耿于怀。所以我又花了很长时间来研究为什么,我的理论依据明明没有问题(今日平均温度与近一周平均...
布兰姥爷 2023-04-21 23:02
跟姥爷深度学习2 TensorFlow的基本用法
一、前言前面我们浅用TensorFlow做了个天气预测,虽然效果不咋样,但算是将整个流程跑通了。这一篇我们在之前基础上对TensorFlow的一些参数进行简单介绍,在接口文件的基础上了解各参数的简单含...
布兰姥爷 2023-04-11 22:22
跟姥爷深度学习1,浅用tensorflow做个天气预测
一、前言最近人工智能、深度学习又火了,我感觉还是有必要研究一下。三年前浅学了一下原理没深入研究框架,三年后感觉各种框架都成熟了,现成的教程也丰富了,所以我继续边学边写。原教程链接:https://ww...
布兰姥爷 2023-03-29 12:41
AI为啥要用显卡
一、前言GPT的发布让AI再次热了起来,与上次阿尔法狗不同的是,现在人人都可以跟聊上几句,给它出出难题,还能调戏下。同期英伟达发布了针对AI领域的全新GPU H100,有的童鞋会疑惑,这个英伟达不是做...
布兰姥爷 2019-11-04 21:09
【零基础】使用Tensorflow实现神经网络
一、序言  前面已经逐步从单神经元慢慢“爬”到了神经网络并把常见的优化都逐个解析了,再往前走就是一些实际应用问题,所以在开始实际应用之前还得把“框架”翻出来,因为后面要做的工作需要我们将精力集中在业务...
EE直播间
更多
我要评论
2
18
关闭 站长推荐上一条 /3 下一条