C++极大整数的变量类型是什么?

use*_*324 19 c++

我试过用了

long long int
Run Code Online (Sandbox Code Playgroud)

但它不适用于像3141592653589793238462643383279502884197169399375这样的数字,我需要这个高达10 ^ 80.任何想法?让我知道.非常感谢.

zwo*_*wol 28

您不能使用任何内置整数类型.你需要一个"多精度整数"又名"bignum"库.对于C++,我首先尝试Boost.Multiprecision,但要注意Boost可能比它值得多麻烦,特别是如果你使用的模块有任何共享库(也就是DLL)组件.另一个明显的选择是GNU MP.它只有一个C接口,但它维护良好,可靠,快速且非常受欢迎(事实上,看来Boost.MP"只是"它的C++包装器!)

警告:您可能需要一个bignum库,因为您正在尝试实现一个使用大数字的加密原语,如RSA. 不要这样做.通用的bignum库对于加密使用是不安全的,即使它们存在,仍然会有许多细微的错误,这些错误会破坏你的安全性.请使用经过充分测试的加密库; 对于C++我推荐Botan.

  • 像生活中的许多事情一样,尽管可能不可取. (22认同)
  • -1让人们远离Boost因为"它比它的价值更麻烦,特别是如果你使用的模块有任何共享库组件".对构建为DLL的Boost库的依赖性与对作为DLL构建的任何其他库的依赖性没有区别.静态链接也是可用的,并通过动态链接解决了大多数麻烦(不仅仅是针对Boost,而是一般). (6认同)
  • 问题是:我不想使用任何库,是否可能? (3认同)
  • 写你自己的课? (2认同)