我正在学习有点操作然后我想到了这一点.假设我有两个数字,第一个在[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);
Run Code Online (Sandbox Code Playgroud)
解码:
a = (c & 0x00000007);
b = (c & 0x00000018) >> 3;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |