yat*_*tin 10 c integer memory-management integer-arithmetic
我必须存储一个大于long数据类型的最大值的整数值.如何在内存中存储和操作此值?
如果可能的话,请通过一个例子来说明.
Dal*_*und 20
考虑使用如下结构将数字存储为十进制数字序列:
struct num {
int ndigits;
char d[MAXDIGITS];
};
Run Code Online (Sandbox Code Playgroud)
例如,数字123456可以初始化为
struct num n = { 6, { 6, 5, 4, 3, 2, 1 } };
Run Code Online (Sandbox Code Playgroud)
反转的数字顺序对于简单计算非常重要.特别是,地点值n.d[i]是n.d[i]*10 ^ i.
现在,几个问题:
num?num?num在一起?num2?num数字?num10?num?提示:做一些铅笔和纸张乘法,看看它们是如何工作的.如果你完成这一系列的问题,你应该能够为每一步编写一个函数,并重复使用这些函数来回答后面的问题,最后得到一个非常简单且未经优化的长(最好是MAXDIGIT数字)用于正数加法和乘法的整数包.
其他问题:
num地表示负数和正数?num(忽略剩余的)?这比乘法更棘手,但是再次,从做一些铅笔和纸张长的划分开始,仔细考虑你做了什么.我不会给您代码,但我可以就采取的方法提出一些建议:
祝你好运