C++ 我如何在不使用“1”的情况下对两个大数字进行求和和和乘法;长“;?
我怎样才能不使用“long”就对两个大数字进行求和和和乘法呢 它必须使用数组,对吗? 所以想象一下,我在做18+18之和:C++ 我如何在不使用“1”的情况下对两个大数字进行求和和和乘法;长“;?,c++,C++,我怎样才能不使用“long”就对两个大数字进行求和和和乘法呢 它必须使用数组,对吗? 所以想象一下,我在做18+18之和: 18 +15 array1 (1,8) array2 (1,5) 我需要按colmn..8+5=13-->3和1+1+1(第三个“1”将来自溢出)的列进行处理 …所以我需要对数组中的每个元素都这样做 #include <stdio.h> #include <conio.h> #include <vectors.h> int main
18
+15
array1 (1,8)
array2 (1,5)
我需要按colmn..8+5=13-->3和1+1+1(第三个“1”将来自溢出)的列进行处理
…所以我需要对数组中的每个元素都这样做
#include <stdio.h>
#include <conio.h>
#include <vectors.h>
int main()
{
int array1 ???
int array2 ???
printf("first number");
scanf();
printf("second number");
scanf();
printf("To Sum Enter 'S', to Multiply Enter 'M'");
scanf();
If(M){
如果不想使用
long
,可以使用两个整数创建一个struct
像这样:
struct BigInteger{
int lowerInt;
int upperInt;
};
然后你可以根据不同的算法对这些结构进行加、减、乘或除。例如,要进行乘法运算,可以使用Shift和Add乘法器算法
但这样做会带来严重的性能问题。使用完整的语言,而不是限制自己
PS:这是什么语言问题?C或C++?那么,你是在说“大数字”吗?顺便说一句,我认为你在代码中并不是真的指^,就像“xor”一样,你的意思似乎是指“的力量”,即用于浮点输入的函数pow(),或者你必须自己编写[I think]。你真正的问题是什么?如果是“我可以使用数字数组来表示大整数吗”,那么是的,这是一个很好的实现。由于您的库提供了atentionGet Knuth第2卷,所以“^”被命名为pow()。它涵盖了这些主题。我的问题是“如何用数组中存储的2个数字进行和/乘”,我知道这是可能的,我只是不能自己做(而且随着最后期限的临近,我遇到了麻烦。)c++,我也不想用long做这件事。。我必须像数字可能是无限的那样做,所以我必须一个元素一个元素地加/乘。我记得在英特尔8085处理器上做过类似的事情,在那里我只有8位来表示整数,乘法需要16位(我们将整数填充到一个连续的位置。此外,按位乘法将是多次加法,生成1或0的进位。这就是二进制的美妙之处,生成的进位永远不会大于1。@Jonym最初的想法是将两个数组中的元素相加/相乘,并将得到的元素写入一个新的ar中同样,数组=连续的位置。
}
}
}
}
struct BigInteger{
int lowerInt;
int upperInt;
};