- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
科学计数法是用明确的数量级来表示数字的常用方法。首先是非零数字,然后是小数点,然后是小数部分,最后是指数。在二进制中,只有一个可能的非零数字。
float 学涉及隐含的第一个数字等于 1,然后尾数位“跟随小数点”。
那么为什么 frexp()
将小数点放在隐含位的左侧,并返回 [0.5, 1) 中的数字而不是类似科学记数法的 [1, 2) ?是否有一些溢出需要注意?
实际上,它会比 IEEE 754/ISO 60559 指定的偏差值多减 1。在硬件中,这可能会用加法换取 XOR。考虑到在许多情况下恢复正常将需要另一个浮点运算,这似乎是一个非常弱的论据。
最佳答案
4.5.4.2 The frexp function
The functions frexp, ldexp, and modf are primitives used by the remainder of the library. There was some sentiment for dropping them for the same reasons that ecvt, fcvt, and gcvt were dropped, but their adherents rescued them for general use. Their use is problematic: on nonbinary architectures ldexp may lose precision, and frexp may be inefficient.
可以推测“库的其余部分”用 frexp
的约定编写起来更方便,或者传统上已经针对此接口(interface)编写,尽管它没有提供任何好处。
我知道这并不能完全回答问题,但它不太适合评论。
我还应该指出,C 语言设计中的一些选择早于 IEEE 754。也许 frexp
返回的格式对 PDP-11 的 float 有意义-点格式,或首次引入函数frexp
的任何其他体系结构。编辑:另见 manual 的第 155 页对于一个 PDP-11 模型。
关于c - 为什么 frexp() 不产生科学记数法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24928833/
我正在研究科学建模程序,但还没有让我的程序编译。我还没有触及我的教授坚持以前工作过的代码,只有 makefile。经过多次尝试,我得到的最远的是这个错误: Error on line 1112: De
有人知道对各种 Material 相互作用的行为进行编程的好资源吗? 游戏编程物理资源通常包括碰撞检测、动量、惯性等,但它们似乎处理一种理想化的“ Material ”。我感兴趣的是模拟弹丸撞击金属的
早上好 谁能帮我理解为什么在 Linux scientific 上打开 codeblock 并选择控制台后,在编译过程中它一直说找不到 g++ 并且不运行编译阶段?我们非常确定我们在初始化阶段插入了
我有一条由 (x,y) 对序列形成的轨迹。我想使用样条在此轨迹上插入点。 我该怎么做?使用 scipy.interpolate.UnivariateSpline 不起作用,因为 x 和 y 都不是单调
我正在从质谱仪读取数据文件,其中许多数字都是 e 格式的,例如 4096.26 5.785e1 4096.29 5.784e1 4096.31 5.784e1 4096.33 5.784e1 4096
我已经使用官方的Windows安装程序安装了Go(1.14),现在我正在阅读Go的书 https://www.golang-book.com/books/intro/1。它说: 对于Windows,安
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
我有一些方程式取决于许多变量。我想用 python 求解方程。这是一个更简单的方程式: f(x,y,theta,w) = x - y + theta * (w - y) 在给定其余参数的值的情况下,如
假设我有一个表达式,我需要找到它的总和: 边界是有限且已知的。在 scipy/numpy 中计算这样一个总和的最快或最有效的方法是什么。可以使用嵌套的 for 循环来完成,但是有更好的方法吗? 最佳答
因此根据 cplusplus.com,当您通过以下方式将输出流的格式标志设置为科学记数法时 of.setf(ios::scientific) 您应该在指数中看到 3 位加号和一个符号。但是,我的输出似
我在信号上使用 scipy.fft,使用移动窗口绘制随时间变化的频率幅度(这里是 an example,时间在 X 上,频率在 Y 上,并且振幅是颜色)。 但是,只有少数频率让我感兴趣(仅约 3、4
我使用的是来自Python的SciPy包,目的是解决一个有很多约束的最小化问题。。比方说我的解决方案有相互矛盾的限制。出于这个问题的目的,让我们假设我有这些限制:。有了这些界限[(0.001,无),(
我在 scipy 'leastsq' 优化例程中遇到问题,如果我执行下面的程序,它说 raise errors[info][1], errors[info][0] TypeError: Imp
假设我选择了一个随机来源,例如 CNN。根据关键字自动将抓取的文章分类,或者针对不同的类别抓取网站的各个部分,例如 cnn.com/tech 或/entertainment,这样会更有利吗?第二个选项
Python 的风格最佳实践是否适用于科学编码? 我发现很难保持科学 Python 代码的可读性。 例如,建议为变量使用有意义的名称,并通过避免 import * 来保持命名空间的顺序。因此,例如:
我想在 TIFF 文件中操作 RGB 波段并在 matplotlib 上输出 灰度 贴图。到目前为止我有这段代码,但我无法在灰度上得到它: import scipy as N import gdal
对于 Google 表格,我需要在一行中有 4 个复选框。他们代表(3)学校考试被拒。最后一个框是当所有这些都被拒绝时。 2 个月前,我对 VBA 一无所知,从那时起我就用 6 岁的代码制作了一系列宏
我即将完成 Udacity 的计算机科学入门 101 类(class),并正在寻求一些帮助来解决最终测验问题之一。以下代码在提交时返回“通过”,但我觉得我没有捕获本次测验中挑战的核心。任何有关如何处理
我是一名优秀的程序员,十分优秀!