C ++什么variablestypes为非常大的整数?
我试过使用
long long int
但它不会像3141592653589793238462643383279502884197169399375这样的数字,我需要这个达到10 ^ 80。任何想法? 让我知道。 非常感谢。
你不能使用任何内置的整数types。 你需要一个“多精度整数”又名“bignum”库。 对于C ++,我会首先尝试Boost.Multiprecision ,但是请注意,Boost可能比它值得的更麻烦,特别是如果您使用的模块具有任何共享库(aka DLL)组件。 另一个明显的select是GNU MP 。 它只有一个C接口,但是它维护得很好,可靠,快速,而且很受欢迎(事实上,Boost.MP似乎只是一个C ++包装器!
警告 :您可能需要一个bignum库,因为您正试图实现使用大数字的密码原语之一,如RSA 。 不要这样做 。 通用的bignum库对encryption使用来说是不安全的,即使它们是,仍然会有几十个微妙的错误,你可以做,这会毁了你的安全。 请使用经过充分testing的密码术库。 对于C ++我推荐Botan 。
在codechef.com上有关于如何存储非常大的数字的教程。 访问以下链接阅读完整信息。 他们解释得很好。
在cc中计算巨大数字的阶乘