C++ 在int和float之间的某个值可以比float保留更少的内存?

C++ 在int和float之间的某个值可以比float保留更少的内存?,c++,c,memory-management,malloc,C++,C,Memory Management,Malloc,我需要在(malloc)内存(ram)数据上保存下一个表单: 34566,5 45,5 46,67 32 -4 58 -43,5 etc 我的意思是,数据在逗号后的位数永远不会超过2。 不知何故,我可以保留内存而不使用浮点类型? 提前感谢。取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型。取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型

我需要在(malloc)内存(ram)数据上保存下一个表单:

34566,5
45,5
46,67
32
-4
58
-43,5
etc
我的意思是,数据在逗号后的位数永远不会超过2。 不知何故,我可以保留内存而不使用浮点类型?

提前感谢。

取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型。

取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型。

取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型。

取决于逗号前的位数。如果您知道可能值的总数N,那么您需要上限(log2n)位值才能表示所有这些值。从中,您可以找出适合的最小类型。

如果您真正关心内存,并且如果您能够指定存储单个值所需的确切位数,您可以决定是使用内置类型还是创建自己的类型。我的意思是,例如,如果您需要6位来存储单个值,您可以使用3个字节(3个字符)来创建一个容器,该容器将存储每4个值。这种容器必须使用位运算符来访问值。

如果您真正关心内存,并且能够指定存储单个值所需的确切位数,则可以决定是使用内置类型还是创建自己的类型。我的意思是,例如,如果您需要6位来存储单个值,您可以使用3个字节(3个字符)来创建一个容器,该容器将存储每4个值。这种容器必须使用位运算符来访问值。

如果您真正关心内存,并且能够指定存储单个值所需的确切位数,则可以决定是使用内置类型还是创建自己的类型。我的意思是,例如,如果您需要6位来存储单个值,您可以使用3个字节(3个字符)来创建一个容器,该容器将存储每4个值。这种容器必须使用位运算符来访问值。

如果您真正关心内存,并且能够指定存储单个值所需的确切位数,则可以决定是使用内置类型还是创建自己的类型。我的意思是,例如,如果您需要6位来存储单个值,您可以使用3个字节(3个字符)来创建一个容器,该容器将存储每4个值。这种容器必须使用位运算符来访问值。

看起来16位整数是不够的,所以下一个常用的数据类型是32位整数或浮点,这意味着在这种情况下可能没有本机数据类型可以节省内存。您可以提出一种使用较少位的自定义定点类型(例如,24位可能是最简单的;您可以将数字乘以100存储在一个三字节的整数中),但总体而言,我建议您考虑动态压缩整个数据集的方法。

看起来16位整数不够,因此,下一个常用的数据类型是32位整数或浮点,这意味着在这种情况下可能没有本机数据类型可以节省内存。您可以提出一种使用较少位的自定义定点类型(例如,24位可能是最简单的;您可以将数字乘以100存储在一个三字节的整数中),但总体而言,我建议您考虑动态压缩整个数据集的方法。

看起来16位整数不够,因此,下一个常用的数据类型是32位整数或浮点,这意味着在这种情况下可能没有本机数据类型可以节省内存。您可以提出一种使用较少位的自定义定点类型(例如,24位可能是最简单的;您可以将数字乘以100存储在一个三字节的整数中),但总体而言,我建议您考虑动态压缩整个数据集的方法。

看起来16位整数不够,因此,下一个常用的数据类型是32位整数或浮点,这意味着在这种情况下可能没有本机数据类型可以节省内存。您可以提出一种使用较少位的自定义定点类型(例如,24位可能是最简单的;您可以将数字乘以100存储在三个字节的整数中),但总的来说,我建议您考虑动态压缩整个数据集的方法。

如果您需要的数据量不超过+/-2^31/100,那么只需使用int,并知道最后两个十进制数字隐式地位于十进制后面。。。注意乘法和除法会使其移动。在典型情况下,浮点与
int
的大小完全相同(大多数情况下都是32位)。您可以使用缩放的
int
(即,存储原始数字乘以100),尽管这是否值得在很大程度上取决于您需要使用它们做什么。这也对您想要实现的目标非常重要。这些数字(及其算术)是否需要100%精确?它们需要很大吗?一旦你把它们存储起来,你需要什么样的访问权限?如果您不需要固定时间随机访问,则有许多压缩选项可用。如果您永远不需要超过+/-2^31/100,则只需使用整数,并知道最后2个十进制数字隐式位于小数点后。。。注意乘法和除法会使其移动。在典型情况下,浮点与
int
的大小完全相同(大多数情况下都是32位)。您可以使用缩放的
int
(即,存储原始数字multi