微软计算器如何计算如此大的数字?

问题描述:

我最多约8E10000那么它是如何计算等一大批,没有变量,可以容纳这么大的数字。微软计算器如何计算如此大的数字?

+0

见http://blogs.msdn.com/b/oldnewthing/archive/2004/05/25/141253.aspx的一些细节。 –

普通类型C可通常只存储多达64位,而不是单个可变,则可以使用一个字符数组到你的电话号码的存储位数和写入用于每个操作的功能(总和,减去等)在你的程序中。

你可以看看这个:GNU Multiple Precision Arithmetic Library

在坚果壳,他们没有使用一个变量来保存操作数,数据结构可能比可容纳任意长的数字(如数组),他们通过评估操作考虑到这个数字在一个大的radix系统中。

当实际做数学运算操作数不变量,但阵列(或任何其他数据结构,它是合适的),你通过执行操作(如果有的话)组分明智做到这一点。

当你想添加2个数组,你选择一个基数,然后循环数组,然后将op1 [i]添加到op2 [i],然后获取该值并检查它是否大于您的基数并计算出马车,你添加到下一个添加。

car = (op1[i] + op2[i])%radix 

你需要在选择的基数和垫层数据小心这样的增加并未导致溢出。

这怎么你也别当你在基地10手,但没有考虑到基数加号。

您还可以查看this一个BIGINT包。