gpt4 book ai didi

c - 我们可以找到另一个小于float的数据类型吗?

转载 作者:行者123 更新时间:2023-12-04 01:17:48 26 4
gpt4 key购买 nike

为了在0-1互斥之间存储值,我分配了以下缓冲区:

float *buff = malloc(n* sizeof(float))


但是,我认为在分配较小的内存大小时,使用 float不能自由选择较大的 n,例如 n=10,000。由于float的大小为 32 bit,我想知道是否存在另一种方法来通过变通办法或选择其他数据类型来减小此大小。

最佳答案

C没有小于float的浮点类型。

有几种可能(但不保证)小于float的整数类型:


signed char
unsigned char
signed short
unsigned short


当然,unsigned类型不能容纳负值,然后没有一个可以容纳分数。

您可以始终定义自己的类型,例如仅将signed char值(通常在-128 .. +127范围内)解释为小数值。我看过16位浮点布局,以为C或大多数硬件都不直接支持它们。

请注意,执行缩放的其他代码的大小可能会超过您保存的数据大小。另一方面,代码和数据大小不一定可以互换。

如果我们对您要表示的值的范围和精度有更多了解,那么回答您的问题会容易得多。

请注意,除非您在小型嵌入式系统上,否则分配10,000个float对象的数组可能很简单。除非您确定有必要,否则不要在使用较小的类型上花费过多的精力。

关于c - 我们可以找到另一个小于float的数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com