【发布时间】:2013-10-14 03:15:52
【问题描述】:
我正在尝试写入不适合 8 位的文件二进制数据。据我了解,如果可以将其分组为 8、16、32,64 的预定义长度,则可以编写任意长度的二进制数据。 有没有办法只将 9 位写入文件?还是两个 9 位的值?
我在 -+32768 范围内有一个值,在 +-256 范围内有 3 个值。什么方法可以节省最多的空间?
谢谢
【问题讨论】:
-
发布您的代码...
-
Writing bits to a file in C 的可能重复项
-
在您可能正在使用的所有系统上,文件的长度始终为多个字节,即 8 位的任意倍数。您当然可以使用 3 个字节(24 位)写入两个 9 位值(18 位)。
-
目前还没有代码,因为我不知道怎么做。我想在 9 位上写入 +-255 范围内的值
-
您可以升级到下一个可用尺寸。如果您使用 +-255 范围内的整数,请使用 int16_t(两个八位字节)。如果您需要更多,请使用 int32_t,依此类推。