Python和C具有frexp
和ldexp
函数(它们基本上在y和y = x * 2 ^ i中的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
什么?我希望这可以帮助记住哪个。
这很简单。正如您之前已经发现的,ldexp意味着负载指数:只需将数字乘以 2 的某个值的幂即可。ldexp 的反函数frexp表示从值中提取浮点基数:
将浮点数 x 分解为其二进制有效数(绝对值在 0.5(包括)和 1.0(不包括)之间的浮点)和 2 的整数指数,这样。*
Python 中的 ldexp 和 frexp 函数自旧的 C90 标准以来就来自 C。所以,胡子已经很老了。
* http://www.cplusplus.com/reference/cmath/frexp/