ldexp 和 frexp 的含义?

问题描述 投票:0回答:2

Python 和 C 有

frexp
ldexp
函数(它们基本上在 y = x*2^i 中的 y、x 和 i 之间来回)。

我猜

exp
的意思是(2的)指数。 “ld”和“fr”是什么意思?我在 http://pubs.opengroup.org/onlinepubs/009695399/functions/ldexp.html 中看到“ld”可能意味着“负载”(来自尾数/指数形式),但即使这样也不完全清楚。不过,我不确定“fr”(http://pubs.opengroup.org/onlinepubs/9699919799/functions/frexp.html同样没有给出线索)。

那么,名称

frexp
ldexp
的含义是什么?我希望这可以帮助记住哪个是哪个。

python c math
2个回答
3
投票

非常简单。正如您之前已经发现的,ldexp 意味着 load exponent:只需将数字乘以 2 的某个值的幂即可。和 ldexp 的反函数称为 frexp 意味着从值中提取 float radix

将浮点数 x 分解为其二进制有效数(绝对值在 0.5(包含)和 1.0(不包含)之间的浮点)和 2 的整数指数,这样。*

Python 中的 ldexp 和 frexp 函数自旧的 C90 标准以来就来自 C。所以,胡子已经很老了。

*

http://www.cplusplus.com/reference/cmath/frexp/


0
投票
我一直想知道机器代码指令 fscale 和 ldexp(x,n) 是否是同一件事。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.