存储浮点数的紧凑方式

Compact way to store floating points

我正在序列化一个字节信息数组、6 个单独的字节和一个存储为 4 个字节的浮点数,浮点数只需要 x.xxx 位数字(从 0.005 到 1.000)我如何使用 less space 如果可以的话?另外,它是 10 个字节的信息,但由于它是一个数组,它占用 38 个字节,有没有更有效的方法来序列化和存储它?

struct ShortFloat { short beforeFloatingPoint : 4, afterFloatingPoint : 10 }; - 2^4 > 10、2^10 > 1000,您可以使用 2 个字节来存储此类“短”浮点数,并且对于算术运算,您可以覆盖操作,如果您使用的是 C++。