将uint64转换为GMP/MPIR编号

ThE*_*arD 3 c++ gmp uint64

我在Windows上使用MPIR 2.4.0(MSVC 2010),我试图将无符号的64位整数添加到mpz_t数字.但是,似乎MPIR/GMP不支持64位整数和mpz_t之间的直接转换.这是否意味着我必须将我的uint64转换为字符串并通过mpz_init_set_str读取?这既不是很有吸引力,也不是很快 - 两次转换都没有.

我错过了什么或者在这里使用的技巧/黑客是什么?

干杯,

菲利普

小智 6

正如Banthar所建议的那样使用mpz_import,但我建议以下不依赖于平台字节序:

mpz_import(b, 1, 1, sizeof(a), 0, 0, &a);
Run Code Online (Sandbox Code Playgroud)