如何在C++中通过boost::random生成一个128位数字。我已经阅读了官方文件。 uniform_int_distribution只能生成64位(int的长度)。
提前致谢。
最佳答案
正如Jun Ge所说,您可以将两个64位整数组合成一个128位整数。 C++规范不包含128位整数,因此您需要找到另一种方法。也许您的编译器拥有它们。您使用boost::random,所以我假设您可以使用boost::multiprecision。
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
int128_t int64left = CreateRandomInt64ViaBoost()
int128_t int64right = CreateRandomInt64ViaBoost()
int128_t randomInt = int64left << 64 | int64right;
较早地针对您的评论之一:是的,这是一个完全随机的128位int,只需两步即可生成它。