C++ C+中数据类型的最大范围+;

C++ C+中数据类型的最大范围+;,c++,C++,我想要一个能容纳10^21的数据类型。在搜索了足够多之后,我得到了未签名的长时间,只要保持在18*10^18左右,这仍然是不够的。我该怎么办?g++,clang++,大多数平台都支持128位的\uu uint128和\uu int128。可以像使用普通整数一样使用它们,但它们往往有点小 这最多可以容纳2^128~10^38 您可以选择使用double或float,但会失去精度 或者您可以使用允许任意精度整数的g++,clang++,并且大多数平台支持包含128位的\uuu uint128和\uu

我想要一个能容纳10^21的数据类型。在搜索了足够多之后,我得到了未签名的长时间,只要保持在18*10^18左右,这仍然是不够的。我该怎么办?

g++
clang++
,大多数平台都支持128位的
\uu uint128
\uu int128
。可以像使用普通整数一样使用它们,但它们往往有点小

这最多可以容纳
2^128~10^38

您可以选择使用
double
float
,但会失去精度


或者您可以使用允许任意精度整数的

g++
clang++
,并且大多数平台支持包含128位的\uuu uint128和
\uu int128
。可以像使用普通整数一样使用它们,但它们往往有点小

这最多可以容纳
2^128~10^38

您可以选择使用
double
float
,但会失去精度


或者你可以使用a,它允许任意精度的整数。

我们使用Magma来表示这些数字:


不确定它们是否有C++库,但需要查看一些内容。这些东西能容纳的数字令人印象深刻。

我们用岩浆来计算这些数字:



不确定它们是否有C++库,但需要查看一些内容。这些东西所能容纳的数据令人印象深刻。

取决于您的应用程序。是否需要整数级精度?使用
std::numeric_limits
Aaah。长的和双的是行不通的。我还需要点别的什么?就在我头上@Jacob如何实现自己的类来保持它?或者您想找到标准解决方案?取决于您的应用程序。是否需要整数级精度?使用
std::numeric_limits
Aaah。长的和双的是行不通的。我还需要点别的什么?就在我头上@Jacob如何实现自己的类来保持它?或者你想找到一个标准的解决方案?谢谢,但我该如何在我的程序中使用它们呢?@Jacob喜欢普通整数。但是更大。请注意,
uint
表示
unsigned int
@Jacob是的,这应该可以。实际上,经过进一步研究,您的处理器必须支持128位长。我认为大多数现代处理器都会这样做,所以你应该很好。如果我想成为内存特定的,有没有比这个更小的int呢@不幸的是,整数是2的倍数。但是如果你使用BigInt库,它可能会更好地分配内存(即使内存通常是以2的倍数扩展的,所以可能不是)。谢谢,但是我该如何在我的程序中使用它们呢?@Jacob喜欢普通整数。但是更大。请注意,
uint
表示
unsigned int
@Jacob是的,这应该可以。实际上,经过进一步研究,您的处理器必须支持128位长。我认为大多数现代处理器都会这样做,所以你应该很好。如果我想成为内存特定的,有没有比这个更小的int呢@不幸的是,整数是2的倍数。但是如果您使用BigInt库,它可能会更好地分配内存(即使内存通常以2的倍数扩展,所以可能不是)。