【发布时间】:2013-11-15 15:44:53
【问题描述】:
我需要保存在(malloc)内存(ram)具有下一个形式的数据:
34566,5
45,5
46,67
32
-4
58
-43,5
etc
我的意思是,逗号后面的数据永远不会超过 2 位。 不知何故,我可以在不使用浮点类型的情况下保留内存? 提前致谢。
【问题讨论】:
-
确定如果您永远不需要超过 +/- 2^31/100,那么只需使用 int 并知道最后 2 个十进制数字隐含在小数点后...注意乘法和除法这将移动它。
-
在典型情况下,浮点数与
int的大小完全相同(大多数情况下均为 32 位)。您可以使用缩放的int(即存储原始数字乘以 100),但是否值得在很大程度上取决于您需要对它们做什么。 -
您想要实现的目标也非常重要。这些数字(以及它们的算术)是否需要 100% 精确?它们需要很大吗?
-
存储它们后,您需要什么样的访问权限?如果您不需要恒定时间随机访问,则有很多可用的压缩选项。
标签: c++ c memory-management malloc