gpt4 book ai didi

c++ - 将多个整数打包成一个 64 位整数

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

我想按以下顺序将以下数字打包到 64 位 int64_t 字段中:

  • int8_t num1
  • int8_t num2
  • int32_t num3
  • int16_t num4

因此,64 位应该采用以下布局:

[  num1(8)  |  num2(8)  |       num3(32)       |   num4(16)  ]

我无法理解位打包逻辑,即我希望将这些数字打包到单个 int64_t 字段中,类似于 this question .

非常感谢任何帮助。

最佳答案

您可能想要这个:

  int8_t num1;
int8_t num2;
int32_t num3;
int16_t num4;
...
uint64_t number = ((uint64_t)num1 << (16 + 32 + 8)) | ((uint64_t)num2 << (16 + 32)) | ((uint64_t)num3 << 16) | (uint64_t)num4;

由此您应该能够弄清楚如何进行逆转换。如果没有,请发布另一个问题。

关于c++ - 将多个整数打包成一个 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47224083/

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