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

新手上路,请多包涵

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

原文由 ranger101 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 633
2 个回答

floatdouble 可以存储您指定的范围内的值,甚至超出。

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

原文由 Brian Cain 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

因此,如果您不需要精确的整数表示,则可以使用 floatdouble ,否则您可以查找任意长数库(也有很多可用的对于 C 或 C++)。

原文由 Jack 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题