在C/C++中存储值<= 10 ^ 20的数据类型

Jij*_*ose -5 c c++

是否有任何数据类型能够在c/c ++ 中存储0 < X <10 ^ 20 范围内的值?

Jac*_*ack 11

因为log2(10^20) = ~66.43您需要一个由128位组成的整数来存储具有整数精度的数字.实际上,正如delnan在评论中所指出的67,通过舍入到72具有8位对齐的96位或具有32位对齐的位,位将是足够的.

因此,如果您不需要精确的整数表示,则可以使用a float或a double,否则您可以查找任意长数字库(有许多可用于C或C++).


Bri*_*ain 7

A float和a double可以存储您指定范围内的值以及更高值.

请注意,它不能在该范围内存储精确的离散整数,而只是通常与数量级相关的近似值.