gpt4 book ai didi

C++ UUID 存储为整数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:56 25 4
gpt4 key购买 nike

是否可以在 linux 下使用 c++ 将 UUID 转换为 128 位整数。将 UUID 转换为整数后,我需要将 16 字节整数转换为字节数组,以便我可以通过 TCP 将其发送到另一台服务器。

据我所知(如果我错了请纠正我),在 C++ 中没有开箱即用的支持处理 16 字节整数,您能否阐明如何做到这一点?如果无法将其作为整数存储和发送,我正在考虑将 uuid 作为字符串发送。

最佳答案

为什么要表示为128位整数?

UUID 是如何表示的?大概它是一个字符串或者已经是一些 16 字节的类型。如果它是一个字符串,那么您可以自己计算 16 字节的数组表示形式,如果它已经是一些 16 字节长的类型,那么您可以直接将其视为 16 字节数组。

一如既往,无论您做什么,都必须确保所有各方都同意网络表示的字节顺序。


C++ 实现不需要具有 128 位整数类型,但其中一种内置类型可能是 128 位。 long long 也许吧。或者您的实现可能会提供您可以使用的扩展整数类型。

Clang 和我认为 GCC 都支持 __uint128_t 类型,但遗憾的是不遵循 C++ 对这种类型的扩展整数的要求。但是 128 位算法应该可以工作,因此您应该能够执行正常操作以将 UUID 粘贴到此类型中,然后将其视为 16 字节数组。

关于C++ UUID 存储为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686130/

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