c语言数字过大怎么办
最简单的办法是将大数当作字符串进行处理,也就是将大数用10进制字符数组进行表示,然后模拟人们手工进行“竖式计算”的过程编写其加减乘除函数。
但是这样做效率很低,因为1024位的大数其10进制数字个数就有数百个,对于任何一种运算,都需要在两个有数百个元素的数组空间上做多重循环,还需要许多额外的空间存放计算的进位退位标志及中间结果。其优点是算法符合人们的日常习惯,易于理解。
如何用C语言写两个大数相加
用char *或者char[]表示大数。需要循环以及进位标志。大概的流程如下:
for (int carryFlag = 0; 略; 略){int digit = str1[i] - '0' + str2[i] - '0' + carryFlag;carryFlag = digit >= 10 ? 1 : 0;digit = digit % 10;res[i] = digit + '0';}