gpt4 book ai didi

c++ - 我如何使用位操作对单个整数中的两个数字进行编码和解码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:13 25 4
gpt4 key购买 nike

我正在学习位操作然后我想到了这个。假设我有两个数字,第一个在 [1,6] 范围内,第二个在 [0,3] 范围内。现在第一个数字最多可以存储 3 位,第二个可以存储 2 位。我如何使用一个 int32 将它们都存储在其中。谢谢。

最佳答案

编码:

// a : range of [1,6], bit0 ~ bit2
// b : range of [0,3], bit3 ~ bit4
// c : encoded int32
c = 0;
c |= (a | b << 3);

解码:

a = (c & 0x00000007);
b = (c & 0x00000018) >> 3;

关于c++ - 我如何使用位操作对单个整数中的两个数字进行编码和解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44650919/

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