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

Luc*_*ean -4 algorithm

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

谁能帮我这个?

Kei*_*iji 5

您可以使用按位移位+屏蔽来实现此目的.鉴于4个32位整数a,b,cd,其中a,bc在范围[0..255]:

d = (a << 16) | (b << 8) | (c);
Run Code Online (Sandbox Code Playgroud)

反向操作:

a = (d >> 16);
b = (d >> 8) & 255;
c = (d) & 255;
Run Code Online (Sandbox Code Playgroud)