我正在寻找一种方法来有效地打包我的数据,以便通过网络发送它们。我找到了一个建议方法的主题:http ://www.sdltutorials.com/cpp-tip-packing-data
而且我还看到它被用于商业应用。所以我决定试一试,但结果并不如我所愿。
首先,“打包”数据的全部意义在于节省字节。但我认为上面提到的算法根本没有节省字节。因为,没有打包...服务器会发送4个字节(数据),打包后服务器会发送一个字符数组,4个字节长...所以没有意义。
除此之外,为什么有人会添加 0xFF ,它根本没有做任何事情。
上面提到的教程中的代码片段:
unsigned char Buffer[3];
unsigned int Data = 1024;
unsigned int UpackedData;
Buffer[0] = (Data >> 24) & 0xFF;
Buffer[1] = (Data >> 12) & 0xFF;
Buffer[2] = (Data >> 8) & 0xFF;
Buffer[3] = (Data ) & 0xFF;
UnpackedData = (Buffer[0] << 24) | (Buffer[1] << 12) | (Buffer[2] << 8) | (Buffer[3] & 0xFF);
结果:0040 // 4 字节长字符 1024 // 4 字节长