超过芯片组上允许的最大数据类型。C++; 我有一些超过C++长数据类型的数学。最好的办法是什么?我正在嵌入式芯片组上做基础数学+,/,和*。我将循环中的数字相加,然后除以大的数字

超过芯片组上允许的最大数据类型。C++; 我有一些超过C++长数据类型的数学。最好的办法是什么?我正在嵌入式芯片组上做基础数学+,/,和*。我将循环中的数字相加,然后除以大的数字,c++,types,embedded,C++,Types,Embedded,通常,long(与long int相同)的大小至少为4个字节。但是,你自己检查一下。如果您发现long-long-int的字节数比long-int多,并且如果您的值未超过long-long-int中可存储的最大值,请使用该值。使用#include并使用此标题中的函数确定可存储在整数类型中的最大值 比如说, #include <limits> #include <iostream> int main() { std::cout << std::nume

通常,
long
(与
long int
相同)的大小至少为4个字节。但是,你自己检查一下。如果您发现
long-long-int
的字节数比
long-int
多,并且如果您的值未超过
long-long-int
中可存储的最大值,请使用该值。使用
#include
并使用此标题中的函数确定可存储在整数类型中的最大值

比如说,

#include <limits>
#include <iostream>

int main()
{
    std::cout << std::numeric_limits<int>::max() << std::endl;
    std::cout << std::numeric_limits<long int>::max() << std::endl;
    std::cout << std::numeric_limits<long long int>::max() << std::endl;
}

但是,如果您的值超过了
long-long-int
中可以存储的值,也可以使用大数字库。

通常,
long
(与
long-int
相同)的大小至少为4个字节。但是,你自己检查一下。如果您发现
long-long-int
的字节数比
long-int
多,并且如果您的值未超过
long-long-int
中可存储的最大值,请使用该值。使用
#include
并使用此标题中的函数确定可存储在整数类型中的最大值

比如说,

#include <limits>
#include <iostream>

int main()
{
    std::cout << std::numeric_limits<int>::max() << std::endl;
    std::cout << std::numeric_limits<long int>::max() << std::endl;
    std::cout << std::numeric_limits<long long int>::max() << std::endl;
}

但是,如果您的值也超过了
long-long-int
中可以存储的值,请使用大数字库。

查看bignum库。有一些漂浮在周围,这里有一个:。我认为GNU有一个,尽管我不确定它是否针对嵌入式进行了优化。我使用过并且喜欢gmpxx.hLook进入bignum库。有一些漂浮在周围,这里有一个:。我认为GNU有一个,尽管我不确定它是否针对嵌入式进行了优化。我曾经使用过,就像gmpxx.hMy系统一样,它没有更高的价值。是否还有另一个很好的方法来表示数字,我仍然可以将其分解并在循环外进行除法,而不需要太多开销?如果您不能将数字放入long-long,并且如果您仍然需要对它们进行算术运算,那么您需要使用bignum库。不要试图自己编写bignum类,找一个适合你平台的类。我的系统没有更高的价值。是否还有另一个很好的方法来表示数字,我仍然可以将其分解并在循环外进行除法,而不需要太多开销?如果您不能将数字放入long-long,并且如果您仍然需要对它们进行算术运算,那么您需要使用bignum库。不要试图自己编写bignum类,找一个适合您平台的类。