C++ 二进制文件的位对齐读写
我想从二进制文件读写n位。 例如,将下一个n位读入整数或下一个n位 到一个字符。我需要的数据位对齐,而不是字节对齐 <> P>有C++库允许我这样做吗?< /P> 当我使用ostream/istream时,我似乎仅限于使用字节对齐 数据。如果我想将数据紧凑地打包,这还不够好。如果您自己进行位级访问,字节对齐访问当然是“足够好的”。) 是一个“位文件”库,听起来像你想要的。我自己还没有测试过,但它听起来相当简单。字节对齐访问“足够好”,当然,如果您自己进行位级访问的话。:)C++ 二进制文件的位对齐读写,c++,parsing,binaryfiles,writing,C++,Parsing,Binaryfiles,Writing,我想从二进制文件读写n位。 例如,将下一个n位读入整数或下一个n位 到一个字符。我需要的数据位对齐,而不是字节对齐 P>有C++库允许我这样做吗?< /P> 当我使用ostream/istream时,我似乎仅限于使用字节对齐 数据。如果我想将数据紧凑地打包,这还不够好。如果您自己进行位级访问,字节对齐访问当然是“足够好的”。) 是一个“位文件”库,听起来像你想要的。我自己还没有测试过,但它听起来相当简单。字节对齐访问“足够好”,当然,如果您自己进行位级访问的话。:) 是一个“位文件”库,听起来
是一个“位文件”库,听起来像你想要的。我自己并没有测试过这个,但它听起来相当简单。您可以使用以下步骤从二进制文件中读取位
上述方法的微小变化可用于将位写入二进制文件。您可以使用以下步骤从二进制文件读取位
上述方法的微小变化可用于将位写入二进制文件。为什么需要将数据打包得如此紧密?您是否考虑过使用压缩库(如zlib)来代替?这对您来说会更容易,而且占用的空间可能会更少。您的位是否绑定到字节对齐的块中?如果是这样,您可以正常读取字节,并使用位移位和位掩码获取位。为什么您需要将数据打包得如此紧密?您是否考虑过使用压缩库(如zlib)来代替?这对您来说会更容易,而且占用的空间可能会更少。您的位是否绑定到字节对齐的块中?如果是这样,您可以正常读取字节,并使用位移位和位掩码获取位。链接失效,并且源不在archve上。org@MarcusJ谢谢,我换了另一个(未经测试的)面向位的I/O库。谢谢,我在编写自己的位阅读器时遇到了麻烦(特别是当涉及到endian交换时,希望是int支持,而不是读取字符等)链接已经死了,并且源代码不在archve上。org@MarcusJ谢谢,我换了另一个(未经测试的)面向位的I/O库。谢谢,我在编写自己的位阅读器时遇到了麻烦(特别是当涉及到endian交换时,希望支持int而不是作为字符读取,等等)