如何将三个0-255个整数编码/解码成一个数字?

时间:2016-04-20 13:26:44

标签: algorithm

有三个整数a,b,c介于0到255之间,我必须编写一个"存储"将三个给定数字分成一个(d),另一个能够从第四个数字(d)获得前三个数字。

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:5)

您可以使用按位移位+屏蔽来实现此目的。给定4个32位整数abcd,范围内有abc 0..255]:

d = (a << 16) | (b << 8) | (c);

反向操作:

a = (d >> 16);
b = (d >> 8) & 255;
c = (d) & 255;