加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数加法

发布时间:2020-12-14 04:05:54 所属栏目:大数据 来源:网络整理
导读:Template: void AddBigUint(const char *pA,const char *pB,char *pSum) { ?? ? int lenA = strlen(pA); ?? ? int lenB = strlen(pB); ?? ? int lenSum = 0;? ? int lenBig = lenA lenB ? lenA : lenB; ?? ? char tmpA[DATA_SIZE] = {''},tmpB[DATA_SIZE]

Template:

void AddBigUint(const char *pA,const char *pB,char *pSum) { ?
? ? int lenA = strlen(pA); ?
? ? int lenB = strlen(pB); ?
? ? int lenSum = 0;
? ? int lenBig = lenA > lenB ? lenA : lenB; ?

? ? char tmpA[DATA_SIZE] = {''},tmpB[DATA_SIZE] = {''}; ?

? ? for (int i = 0 ; i < lenA ; ++i) { ?
? ? ? ? tmpA[i] = pA[lenA - i - 1] - '0'; ?
? ? } ?
? ? for (int i = 0 ; i < lenB ; ++i) { ?
? ? ? ? tmpB[i] = pB[lenB - i - 1] - '0'; ?
? ? } ?

? ? memset(pSum,sizeof(char) * (lenBig + 1)); ?

? ? for (int i = 0 ; i < lenBig ; ++i,++lenSum) { ?
? ? ? ? pSum[lenSum] += tmpA[i] + tmpB[i]; ?
? ? ? ? if (pSum[lenSum] >= 10) { ?
? ? ? ? ? ? pSum[lenSum + 1] += 1; ?
? ? ? ? ? ? pSum[lenSum] -= 10; ?
? ? ? ? } ?
? ? } ?

? ? if (pSum[lenSum] != 0) { ?
? ? ? ? lenSum++; ?
? ? } ?

? ? int lenHalf = lenSum >> 1; ?

? ? for (int i = 0 ; i < lenHalf ; ++i) { ?
? ? ? ? char buf = pSum[i]; ?
? ? ? ? pSum[i] = pSum[lenSum - i - 1]; ?
? ? ? ? pSum[lenSum - i - 1] = buf; ?
? ? } ?
? ? for (int i = 0 ; i < lenSum ; ++i) { ?
? ? ? ? pSum[i] += '0'; ?
? ? }
? ? pSum[lenSum] = '';
} ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读