我的问题是我不知道如何对大量数字求和(例如“1728390234982347922834798237494”或“-1728390234982347922834798237494”)。因此,我创建了char* m_value
来存储此类对象。现在,我要做的是进行一些基本的算术运算。我应该先将其转换还是使用类似itoa
的代码?在我的情况下,除了char *之外没有其他选项可以存储数字。
Main.cpp
int main(int argc, char *argv[])
{
LargeNumber l1;
LargeNumber l3("172839023498234792834798237494");
LargeNumber l7("-172839023498234792834798237494");
l1 = l3 + l7; //How to do it ?
return 0;
}
LargeNumber.h
class LargeNumber{
public:
LargeNumber(char* value):m_value(value)
{}
LargeNumber operator+(const LargeNumber&);
private:
char* m_value;
}
LargeNumber.cpp
LargeNumber LargeNumber ::operator+(const LargeNumber &b)
{
return LargeNumber ( ... ); //Sum both LargeNumber ???
}
最佳答案
您将需要使用大量的算术库。 GMP是一个不错的选择。您的处理器无法对这种大小的数字进行本机运算,因此这些库会在软件中为您处理所有老式数学。
关于c++ - 如何对char *数字求和?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10725146/