我大约有8E10000,所以它是如何计算这么大的数字的,没有变量可以容纳这么大的数字。
发布于 2014-03-25 14:38:07
C中的普通类型通常最多只能存储64位,而不是单个变量,您可以使用一个字符数组来存储数字的位数,并为程序中的每个运算(和、减等)编写函数。
发布于 2014-03-25 14:45:38
在坚果外壳中,他们不是使用一个变量来保存操作数,而是使用可以保存任意长数字(如数组)的数据结构,并且他们通过考虑大型radix系统中的数字来评估操作。
当您实际执行数学运算时,操作数不是变量,而是数组(或任何其他合适的数据结构),您可以通过组件执行运算(如果可用)。
当你想要加2数组的时候,你选择一个基数,然后循环数组,把op1i加到op2i上,然后取这个值,检查它是否大于你的基数,然后计算一个你添加到下一个加法中的回车。
car = (op1[i] + op2[i])%radix在选择基数和底层数据时需要小心,这样加法才不会导致溢出。
这也是你在不考虑基数的情况下手动添加基数10的时候所做的。
您还可以在this上查找bigint包。
https://stackoverflow.com/questions/22626925
复制相似问题