c++ - boost mpz_int 基数不是 2、8、10、16

标签 c++ boost multiprecision

我可以从具有标准基数的字符串创建多精度整数

#include <boost/multiprecision/gmp.hpp>
...
using namespace boost::multiprecision;
mpz_int decimal("10");
mpz_int hexadecimal("0xa");
mpz_int octal("012");
mpz_int binary("0b1010");

要像 GMP 中一样使用 2 到 62 基数,例如可以使用

#include <gmp.h>
...
mpz_t auxiliary;
mpz_init(auxiliary);
mpz_set_str(auxiliary,"11",9);
mpz_int j = auxiliary;
mpz_clear(auxiliary);

是否有更直接且无需辅助变量的方法?

最佳答案

是的。

#include <iostream>
#include <boost/multiprecision/gmp.hpp>

int main()
{
  boost::multiprecision::mpz_int j;
  mpz_set_str( j.backend().data(), "11", 9 );
  std::cout << j << "\n";
}

请仔细阅读文档。

关于c++ - boost mpz_int 基数不是 2、8、10、16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33825457/

相关文章:

c++ - 如何在 lambda 函数中保留对捕获的智能指针的引用?

c++ - 是否可以定义指向构造函数的函数指针?

c++ - boost::asio 缓冲区不可能将参数从 char 转换为 const mutable_buffer&

c++ - 重复特定的正则表达式模式

c++ - 使用 Boost.Random 从种子生成多精度整数

c++ - 编译错误 g++

C++:Boost.MPL 等效于在类型 vector 中的第 i 个类型上调用函数

c++ - boost::multiprecision::cpp_int 是 POD 吗?

c++ - 为什么我不能将 std::unordered_map 或 boost::unordered_map 与 boost::multiprecision 类型一起使用?

c++ - 如何定义查找函数?