C++ 网络传输 数据压缩问题

比如整数1,占用4个字节,分别为01 00 00 00,整数700,占用四个字节,分别为 02 bc 00 00
网络传输时,怎么压缩成01 02 bc?

已经解决,谢谢大家的回答。

你直接用gzip等方式压缩。接受后再解压还原数据就可以了。这些都是成熟的压缩类库了

 你的想法有问题,如果一个整数的值是257,表示为 01 01 00 00,你压缩成01 01到底是 1 1还是257?
如果你能保证所有整数<256那么可以,直接对每个数%256存入字节数组就是了。

int iData1 = 1;
int iData2 = 700;

int iNewData = iData1 | (iData2 << 8);//iNewData ->0x00bc0201,如果还有一个数据(占1个字节,即0~255之间的数字),可以放到00那个位置

这里我因为知道你的数据是1和700,也就是说知道这2个数据占多少位,通过位运算可以这么拼接,但是不通用,具体要看看你的数据

网络传输 你这种容易混。
最好使用asn1 协议 编码 传输。

直接对每个数%256存入字节数组,前提是所有整数<256