如何通过生成的boost ::随机在C 128位数++。 我已阅读官方文档。 所述uniform_int_distribution只能生成64位(INT的长度)。 提前致谢。
Answer 1:
作为戈峻说,你可以在两个64位整数合并成一个128位的整数。 在C ++规范不包括128个整数,所以你需要找到另一种方式。 也许你的编译器有这些东西。 你使用boost ::随机,所以我认为你可以使用boost ::多倍。
#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,你刚才生成的两个步骤。
文章来源: Generate 128 bit(uint128_t) randomly in c++ via boost::random