gpt4 book ai didi

c++ - 通过 boost::random 在 C++ 中随机生成 128 位(uint128_t)

转载 作者:行者123 更新时间:2023-11-30 03:35:44 28 4
gpt4 key购买 nike

如何通过 boost::random 在 C++ 中生成 128 位数字。我已经阅读了官方文档。 uniform_int_distribution 只能生成 64 位(int 的长度)。提前致谢。

最佳答案

正如君哥所说,你可以将两个 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,您只需分两步生成它。

关于c++ - 通过 boost::random 在 C++ 中随机生成 128 位(uint128_t),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075444/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com