gpt4 book ai didi

android - 在 (0,1) 之间规范化 C++ 中的变量以获得算术精度

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:39 26 4
gpt4 key购买 nike

我在计算规范化二维点的投影时,无意中发现它们比在未规范化的情况下投影点更准确。我的代码是用 c++ 编写的,我用 NDK 为缺少 FPU(浮点单元)的 android 手机编译。

为什么当我第一次将值归一化以使它们介于 0 和 1 之间时,使用 C++ 的计算会获得准确性?

如果使用介于 0 和 1 之间的变量,在 C++ 中是否通常会获得算术准确性,或者它是否与为 ARM 设备编译的情况有关?

最佳答案

你对精度有误解。精度基本上是您可以用来表示数字尾数的位数。

如果将比例保持在 0 到 1 之间,您可能会发现小数点后似乎有更多数字,但这不是精度,它根本不会根据比例或符号而改变。

例如,无论您的数字是 0.5 还是 1e38,单精度都有 23 位精度。 double 有 52 位精度。

参见 this answer有关 IEEE754 位级表示的更多详细信息。

关于android - 在 (0,1) 之间规范化 C++ 中的变量以获得算术精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783067/

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