【问题标题】:A good and basic implementation of BigInt class in C++ [closed]C++ 中 BigInt 类的良好和基本实现 [关闭]
【发布时间】:2012-05-21 12:33:29
【问题描述】:

我在 C++ 中寻找一个好的和基本的 BigInt 类,我找到了很多实现,但大多数时候,它是加密库的复杂实现......

基本,我的意思是 BigInt 可以处理 BigInt、long long 和带有运算符重载的字符串。 如果我有时间,我自己已经完成了,但我没有时间创建一个完整的 BigInt 类。

【问题讨论】:

  • 我认为 GMP 有类包装器,不是吗?
  • @SethCarnegie:是的,但 GMP 在 C 中。(我想要现代 C++ 中使用运算符重载的东西)
  • 一个 类包装器 必须在 C++ 中,因为 C 没有类。
  • @SethCarnegie:是的,你是对的,我的错。但我不想要一个专业的库,只想要一个简单的 BigInt 类。

标签: c++ biginteger bigint


【解决方案1】:

我知道的最简单的库是InfInt。它只包含一个头文件。它的用法相当简单。这是一个示例代码:

InfInt myint1 = "15432154865413186646848435184100510168404641560358";
InfInt myint2 = 156341300544608LL;

myint1 *= --myint2 - 3;
std::cout << myint1 << std::endl;

【讨论】:

  • 这里是InfInt github 的更新链接。这是InfInt.h的永久下载链接
  • 这个似乎没有正确测试,尝试获取最多 10 的 fib 数字并查看结果。
【解决方案2】:

http://sourceforge.net/projects/cpp-bigint/

C++ 类 BigInt,使用户能够使用任意精度整数。

【讨论】:

  • 这个至少有一些测试
【解决方案3】:

Here's one。没用过,不过看起来也不算太复杂,是我google“bigint c++”的第一个结果。

【讨论】:

  • 该库可以处理除 BigInteger 之外的许多类型,例如 BigUnsigned 和 BigUnsignedInABase,而不是一个 BigInt 类那么容易。
  • 如果你不想要 BigUnsignedInABase,你可以不使用它。就个人而言,我不认为你会发现任何更简单的东西。要么接受,要么离开。
  • 我想知道一些更基本/简单的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 2021-04-16
  • 2022-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多