gpt4 book ai didi

c++ - 怎么让这些成员元素能装进3个字节?

转载 作者:太空狗 更新时间:2023-10-29 20:57:08 24 4
gpt4 key购买 nike

我有一个结构,其长度不应超过 14 个字节,截至目前我还剩下 3 个字节(11 个字节已被占用)。我需要添加 3 个成员size 取值范围为 40 - 8188id1 取值范围为 1 - 257id2 取值范围为 1 - 254所以我有

uint16_t size:13;
uint16_t id1:9;
uint8_t id2:8;

另一方面,这将使我多出 6 位。使这 3 个成员适合 3 个字节的其他方法是什么? Id1 和 Id2 应该始终在一起。

最佳答案

这是不可能的。

从逻辑上讲,您拥有的可能值的数量是:

  • 8148 个不同的大小
  • 256 个不同的 id1
  • 253 个不同的 id2

这使得 8148*256*253 = 527729664 个不同的值组合。 2^24,这是你得到的三个字节的所有可能性,只有 16777216。即使你将所有三个数字组合在一起,你也做不到。

可以按原样放入 29 位。或者您可以进一步限制值的范围。

如果有关于协方差的附加信息 - 例如,“当 id2 为 1 时,size 始终大于 500”,您可以使用它来压缩更多内容。

关于c++ - 怎么让这些成员元素能装进3个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31601685/

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