当前位置: 首页 > 知识库问答 >
问题:

对于非常大的整数,什么变量类型?

谢选
2023-03-14

我试过用

long long int

但它不能用于像3141592653589793238462643383279502884197169399375这样的数字,我最多需要10^80。你知道吗?让我知道。非常感谢。

共有1个答案

利思源
2023-03-14

不能为此使用任何内置整数类型。您需要一个“多重精度整数”,也就是“bignum”库。对于C++,我会先尝试Boost.multiprecision,但要注意Boost可能会比它的价值更麻烦,尤其是如果您使用的模块有任何共享库(又名DLL)组件。另一个明显的选择是GNU MP。它只有一个C接口,但它维护良好、可靠、快速,而且非常受欢迎(事实上,Boost.mp似乎“只是”它的一个C++包装器!)

警告:您可能需要一个bignum库,因为您正试图实现一个使用大量数字的加密原语,如RSA。别这样。通用的bignum库对于加密使用来说并不安全,即使它们是安全的,仍然会有几十个细微的错误可能会破坏安全性。取而代之的是使用经过良好测试的加密库;对于C++,我推荐Botan。

 类似资料:
  • 我有一个基本的疑问,我们可以增加整数类对象的引用,而不是任何其他类的引用(D类有1个整数数据成员和一个参数化构造函数)。 这里x和d都是引用,但我们仍然可以增加整数引用,而不增加任何其他引用。我错过了一些非常基本的东西,请帮助我。

  • 本文向大家介绍C ++中的变量和变量类型是什么?,包括了C ++中的变量和变量类型是什么?的使用技巧和注意事项,需要的朋友参考一下 变量为我们提供了程序可以操纵的命名存储。C ++中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。可以存储在该内存中的值的范围;以及可以应用于该变量的一组操作。一个非常简单的变量示例是- 在这里,我们有一个变量my_val,类型为int(integer)

  • 问题内容: 我需要在MySQL表中存储大量(数千万)的512位SHA-2哈希。为了节省空间,我想以二进制形式存储它们,而不是以十六进制数字的字符串存储。我使用的是ORM(DBix :: Class ),因此将从代码中抽象出存储的特定详细信息,从而可以将它们扩充到我选择的任何对象或结构中。 MySQL的类型是64位。因此,我可以从理论上将散列划分为八列。不过,这似乎很荒谬。我的其他想法只是使用单个列

  • 我搜索了数据库和食谱,但似乎找不到正确的答案。我有一个非常简单的python代码,它总结了一个范围内的自我权力。我需要这个非常非常大的数字的最后十位,我已经尝试了get上下文(). prec,但是我仍然达到了极限。 代码如下: 我怎么能看到这些美丽的数字?它在我的四核上打印速度相对较快。这只是为了给ProjectEuler带来乐趣,问题#48,请不要破坏者。我不想要解决方案,也不想让工作为我完成,

  • 常量: 常量就是我们经常会用的数字、字符串了,比如我们问一张光盘多少钱,回答说5元,那么5就是常量,如果说一张光盘的价格不定,在3-5元的范围内浮动,那么这就是我们学过的未知数,对于这样的未知数我们经常会用一个变量来表示。 变量: 变量就是我们用一个符号来表示一个我们想要表示的概念,比如我们可以用price这个变量来表示一张光盘的价格。变量与常量的区别就在变量是可以变动的,也就是说我们用变量来定义

  • 但是,在阅读java源代码时,我注意到在和类中,常量是,而不是Float、Byte、Double、Short和character。 注意,SIZE常量表示用于表示实际值的位数。 编辑:我刚刚注意到,这也适用于相同类的和。