C++ 我如何在不使用“1”的情况下对两个大数字进行求和和和乘法;长“;?

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

我怎样才能不使用“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()
{

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;
};