gpt4 book ai didi

c++ - 在不更改数据类型的情况下可逆地组合两个 uint32_t

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:22 24 4
gpt4 key购买 nike

这是我的问题:我需要通过单个 uint32_t 传回两个 uint32_t(因为 API 的设置方式...)。我可以硬编码我需要的任何其他值来反转操作,但函数之间传递的参数需要保持单个 uint32_t。

如果我可以将两个 32 位整数移位成一个 64 位整数(如解释的 here ),这将是微不足道的,但编译器不会喜欢那样。我也看过数学 pairing functions ,但我不确定在这种情况下这是否是我所需要的。

我想过设置一个简单的密码:unint32_t 可以是密文,我可以对 key 进行硬编码。这是 example ,但这似乎有点矫枉过正。

这可能吗?

最佳答案

仅使用 32 位是不可能存储超过 32 位的信息的。这是信息论的一个基本结论。

如果您知道您只使用每个值的低 16 位,则可以将一个左移 16 位并以这种方式组合它们。但是,绝对没有办法将 64 位的信息(甚至 33 位)转化为 32 位的信息。

关于c++ - 在不更改数据类型的情况下可逆地组合两个 uint32_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21169203/

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