如何在C ++中正确规范化浮点值?

用户名

也许我不太了解IEEE754标准,但是给定了float或的一组浮点值,double例如:

56.543f 3238.124124f 121.3f ...

你可以将它们转换中值从01,所以你归他们,通过采取适当的常见因素,同时考虑什么是最大值,并在设定的最低值。

现在,我的观点是,在此转换中,与第一个目标所需的精度水平相比,目标范围从0到的精度要高得多1,尤其是如果第一个目标值覆盖的范围很广数值范围(非常大和非常小的值)。

如何floatdouble(或者,如果你想IEEE 754标准)类型可以处理这种情况而知道我基本上不会需要一个整数部分的第二组值提供更准确?

还是根本无法解决这个问题,我需要使用完全不同类型的定点数学?

乔·Z

浮点数以类似于科学计数法的格式存储。在内部,它们将1二进制表示形式的开头与有效位数的顶部对齐相对于其自身的大小,每个值均以相同数量的精度的二进制数字进行传送。

当您将一组浮点值压缩到0..1范围内时,您将获得的唯一精度损失将归因于该过程各个步骤中发生的舍入。

如果仅通过缩放进行压缩,则在尾数的LSB附近只会损失少量精度(大约1或2 ulp,其中ulp表示“最后一位的单位”)。

如果您还需要转移数据,那么事情将变得更加棘手。如果您的数据都是正数,则减去最小数不会损坏任何东西。但是,如果您的数据是正负数据的混合,那么一些接近零的值可能会损失精度。

如果您以double精确的方式进行所有算术运算,则将通过计算获得53位的精度。如果您的精度要求符合要求(可能的话),那么您会没事的。否则,确切的数字性能将取决于数据的分布。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Firebase中正确规范化数据

来自分类Dev

在C ++中创建非规范化(非规范)浮点值

来自分类Dev

C ++幅度(规范化)似乎不正确

来自分类Dev

如何使用重复值规范化MySQL表

来自分类Dev

如何在jQuery UI的datepicker的beforeShow方法中获取规范化的最小值/最大值?

来自分类Dev

如何在SQL规范化中联接这些表

来自分类Dev

如何在Firebase中写入非规范化数据

来自分类Dev

如何在R中反规范化嵌套列表?

来自分类Dev

如何在Vuex中实现状态规范化?

来自分类Dev

如何在R中反规范化嵌套列表?

来自分类Dev

如何在Cassandra中处理非规范化

来自分类Dev

如何在 MySQL 中加入非规范化表?

来自分类Dev

如何在 Hybris 中规范化 URL

来自分类Dev

如何在C#中正确序列化位图?

来自分类Dev

如何在 C++ 中正确初始化 Struct

来自分类Dev

如何规范化栅格堆栈?

来自分类Dev

我如何规范化JSON

来自分类Dev

Pytorch中的规范化如何工作?

来自分类Dev

如何非规范化xml文件?

来自分类Dev

从C中的结构规范化向量

来自分类Dev

如何在C ++中正确声明/分配变量的值

来自分类Dev

如何在C#中正确使用Trackbar值

来自分类Dev

如何规范化到序列中的上一个值

来自分类Dev

流星/蒙哥-您如何引用查询集合?(去规范化与规范化)

来自分类Dev

如何对R中的数据进行规范化和非规范化?

来自分类Dev

Stanford TokensRegex:如何使用NER注释的规范化输出设置规范化注释?

来自分类Dev

当不同组件依赖同一实体列表时,如何正确管理规范化数据的删除?

来自分类Dev

如何正确迁移未规范化且不一致的用户数据库

来自分类Dev

如何在C中正确使用malloc?

Related 相关文章

热门标签

归档