小程序 - c字符串表示大整数
Posted brayden
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序 - c字符串表示大整数相关的知识,希望对你有一定的参考价值。
#define max(a, b) ((a) > (b) ? (a) : (b)) static char* reverse(char *str) { char *l, *r, c; for (l = str, r = str + strlen(str) - 1; l < r; l++, r--) { c = *l; *l = *r; *r = c; } return str; } /* * Return the result of a big int as string when succeeded; otherwise * a NULL is returned. The caller needs to take care of the returned * heap memory; caller needs to ensure the inputs are valid big int. */ char* addBigInt(char *i1, char *i2) { char *p1, *p2, *p3, *res; int len1, len2, val, carry; if (!i1 || !*i1) return strdup(i2); if (!i2 || !*i2) return strdup(i1); len1 = strlen(i1); len2 = strlen(i2); if ((res = (char*)malloc(max(len1, len2) + 2)) == NULL) return NULL; for (p1 = i1 + len1 - 1, p2 = i2 + len2 - 1, p3 = res, val = 0; p1 != i1 - 1 || p2 != i2 - 1 || val;
*p3++ = val % 10 + ‘0‘, val /= 10) { if (p1 != i1 - 1) val += *(p1--) - ‘0‘; if (p2 != i2 - 1) val += *(p2--) - ‘0‘; } *p3 = ‘\0‘; return reverse(res); }
以上是关于小程序 - c字符串表示大整数的主要内容,如果未能解决你的问题,请参考以下文章
c语言编程 同一天生日:在一个有200人的大班级中,存在两个人生日相同的概率非常大。。
ZZNUOJ_用C语言编写程序实现1153:大整数加法(附完整源码)