我想要一个可以容纳10 ^ 21的数据类型。经过足够多的搜索,我得到了无条件的长期,因为在18 * 10 ^ 18附近占据一席之地,这仍然不够。我该怎么办?
答案 0 :(得分:2)
g++
,clang++
,大多数平台都支持__uint128
和__int128
,其中包含128位。您可以像普通整数一样使用它们,但它们往往有点less compatible with the standard library。
这可以保存最多2^128 ~ 10^38
您也可以使用double
或float
,但会失去精确度。
或者您可以使用BigInt library,它允许任意精度整数。
答案 1 :(得分:0)
我们将Magma用于这些类型的数字: https://en.wikipedia.org/wiki/Magma_(computer_algebra_system) http://magma.maths.usyd.edu.au/magma/
不确定他们是否有C ++库,但需要深思。这些东西可以容纳的数字令人印象深刻。