数据压缩 float 转换 int

来源:百度知道 编辑:UC知道 时间:2024/09/22 23:29:47
比如数据为float型占用4个字节,想转换为int 2个字节,占用的空间减少以达到压缩,怎样转换?short int 带符号2字节短整形 - 32768 ~ 32767 ,float型数据的范围是3.4E-38~3.4E+38
数据转换过去后要求还能转换回来,允许误差,不是简单的将小数点后的数据去掉,要能够实现压缩才行

最简单的就像楼上说的强转
但如果你的数据都是0.xx的话,那就都转成0了。所以,你也可以根据自己数据的特点进行转换。简单的说,如下操作:
1、求出你所有数据的总的平均数和方差
2、将平均数映射为0,然后将其余各数按照算出的方差分布进行映射
这样映射应该可以保证你转换完了的数据跟原来的数据同分布,在很多场合还是很有用的~~

float f = 1.5;
int i = (int)f; // 这样转换

给一楼补充:
float f = 1.5;
int i = (int)f; // 这样转换
(int)f这里的int必须加员括号。

你要保留原理的精度 大概是不可能的了 在ieee754标准里 已经把这个做的很精简了

看你保留的精度了,如果要求2位小数,则可以乘以100存进去,用的时候除以100