C 语言中,一个数太大了怎么办?

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:52:30
C语言里面能表示出来的最大的数应该是 DOUBLE 型数据 64位长 但是,一个数的长度超过了64位怎么办呢?
是否可以自己创建一个新的数据类型呢?
那要怎样创建呢?
希望大侠指点
给出具体可运行程序
小弟这厢有礼了~
如果有方法解决的话,请给出可运行程序谢谢。我就举一个数据吧。50的阶乘,这个数少说都有40位十进制数(估计的)。这个很NB的数,不是开始赋值的,而是在运算过程中产生的,而且还要准确的输出这个数。就比如,求 50的阶乘。
二楼的兄台,我错了。举例不当。。但是也请不要和我抬杠吧。大家一起讨论讨论对这类超级长的数据的解决方法。
好,现在改成 求200的阶乘。这个结果我试过了,double型是算不出来的。

把各个位分解出来后。
可以把数保存在一个整型数组里比如a[100],
哪么a[99]就表示100位上的数值,a[0]表示个位数字,
比如100位上是5,个位上是4,其他都是0的话就写成这样了
500000····00004

然后和另外的一个数组b[100]各个位相加。保存到数组中,
用for循环打印出各个位显示出数值。
本人的一点经验,以前就遇到过类似情况,有什么不懂得可以一起讨论。

50的阶乘用double我都可以算出来。。。
结果是

3.04140932017134E+64

hehe。。200的阶乘。。。那你必须像小时候笔算算那样算。。。就是分段算,然后分离数字放进数组。。然后算。。具体的,很晚了,我也忘记怎么弄了。。

数组存储

数据在计算机中是以二进制保存的,float和double没办法转成二进制,但是它们以一种特定的格式保存,这种格式只能近似的表示二者的值,并不一定精确.