为了减少网络上的数据大小,我只想向网络写入足够的位,这些位可以保存值。例如,如果40位可以保存该值,那么我想向流写入40位,而不是64位。或者,如果值可以存储在3位中,我只想向二进制流写入3位,而不是8位,其中5位为0。
我的问题是如何用C++将不对齐的数据写入二进制流?
流使用字节,而不是比特,因此您必须使用8比特的倍数。您可以向流写入40位,因为这正好是5个字节。
您正在发明自己的压缩方案,几乎肯定会比专家做得更糟。
你的网络可能也已经在进行压缩,所以你可能正在做已经在做的工作。
你的问题非常缺乏细节,无法得到更好的答案。