我使用此代码从 boost 中生成 UUID:
boost::uuids::random_generator gen;
boost::uuids::uuid uuidId = gen();
string randomUUID = boost::lexical_cast<std::string>(uuidId);
std::remove( randomUUID.begin(), randomUUID.end(), '-');
randomUUID = "0x" + randomUUID;
它给了我十六进制数字,例如:“0xCC5B9F6946EF4448A89EDB2042E0B084”。
我的问题是:如何将此字符串(128 位十六进制数)转换为 128 长或 64 位长(可以丢失更高的数据)?
在这种情况下,标准 C 环礁和 C++ std::stoll 没有帮助。
UUID 优先用于随机生成质量。
谢谢!