如何在c++中将不对齐的数据写入二进制流

How to write non aligned data to a binary stream in c++

本文关键字:数据 二进制 对齐 c++      更新时间:2023-10-16

为了减少网络上的数据大小,我只想向网络写入足够的位,这些位可以保存值。例如,如果40位可以保存该值,那么我想向流写入40位,而不是64位。或者,如果值可以存储在3位中,我只想向二进制流写入3位,而不是8位,其中5位为0。

我的问题是如何用C++将不对齐的数据写入二进制流?

流使用字节,而不是比特,因此您必须使用8比特的倍数。您可以向流写入40位,因为这正好是5个字节。

您正在发明自己的压缩方案,几乎肯定会比专家做得更糟。

你的网络可能也已经在进行压缩,所以你可能正在做已经在做的工作。

你的问题非常缺乏细节,无法得到更好的答案。