gpt4 book ai didi

计算 C 中 float 的 epsilon

转载 作者:行者123 更新时间:2023-12-02 01:03:56 25 4
gpt4 key购买 nike

我必须使用位/整数运算来计算 C 中给定值的 epsilon。我知道在位模式方面,计算下一个邻居涉及递增尾数,如果溢出,则递增指数 -但我不确定从哪里开始计算 epsilon。

我不能使用 float 学 - 所以我需要直接生成位模式。这让事情变得更棘手,因为我无法减去。

这是我的理解(基于我在 SO 上所做的一些研究): 随着数字变大,范围明显变化,但我不确定如何使用 FLT_EPSILON 生成正确的数字。对于 2^2x 数字,也许是 (FLT_EPSILON - 1) * number

最佳答案

如果您的 epsilon 只是尾数增加一个 LSB 的值,则该值应为 2^(exp-23)。因此,如果您的输入是 [s][exp][mantissa],您的 epsilon 应该是 [0][exp-23][0]。果然,当给定输入 1.0 ([0][127][0]) 时,结果是 [0][104][0] = 2^ -23 = FLT_EPSILON

关于计算 C 中 float 的 epsilon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24915282/

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