ieee-754相关内容

IEEE-754:有理数集的基数

有理数集的基数是什么?这些有理数具有与单精度IEEE-754兼容的浮点格式的精确表示? 解决方案 有2139095039个有限的正浮点数. 有限的负浮点数很多. 您想将+0.0和-0.0包括为两项还是一项?根据答案的不同,总数为2 * 2139095039 + 2或2 * 2139095039 +1,分别为4278190080或4278190079. 2139095039编号的 ..
发布时间:2020-11-08 21:51:00 其他开发

NaN!= NaN的直观原因是什么?

根据我的发现,IEEE定义NaN在浮点数系统中不等于自身.我唯一一次必须将NaN与NaN进行比较是在比较数据帧条目时,在这种情况下,NaN的此属性实际上是一个很大的麻烦. 只是想知道为什么要做出使NaN不等于自身的决定,这与其他Null值不同. (例如,像“无",例如在python中.) 解决方案 IEEE 754定义了浮点算术系统.它的相等运算符测试两个数字是否相等. (这不同于测 ..
发布时间:2020-11-08 21:50:48 其他开发

使用字节表示法对浮点值进行排序

如果有一个8字节的数据段并在其中写入一个双精度浮点值,那么在什么条件下通过数字比较和按字节顺序的字典比较可以达成一致? 当前理论:积极的,大端的 我相信,如果数字为正,且表示形式为big-endian,则浮点值的数字顺序将与字节的字典顺序相匹配. 这个想法是,它会首先按指数排序,然后按尾数排序.甚至“非规范化" IEEE表示也不会引起任何问题. 这是真的吗? (我正在 ..
发布时间:2020-11-08 21:44:16 其他开发

浮点运算和重现性

IEEE-754算术可在不同平台上重现吗? 我正在测试一些用R编写的使用随机数的代码.我以为在所有经过测试的平台上设置随机数生成器的种子将使测试具有可重复性,但是对于rexp()似乎并非如此,因为rexp()生成指数分布的随机数. 这是我在32位Linux上得到的: options(digits=22) ; set.seed(9) ; rexp(1, 5) # [1] 0.280 ..
发布时间:2020-11-08 21:42:46 其他开发

是否为IEEE 754浮点数加倍z = x-y保证z + y == x?

我有一个问题,可以简化为以下问题陈述: 给出一系列的双打,每个双打的范围都在[0, 1e7]范围内, 修改最后一个元素,使数字的总和等于 确切地是目标数字.系列的双打已经加起来 目标数字在epsilon(1e-7)内,但不是==. 以下代码有效,但是否可以保证满足第一句中所述要求的所有输入有效? public static double[] FixIt(double[] inpu ..
发布时间:2020-11-08 21:42:07 C#/.NET

浮动比较

为了比较Go中两个浮点(float64)的相等性,我对IEEE 754和浮点的二进制表示的肤浅理解使我认为这是一个很好的解决方案: func Equal(a, b float64) bool { ba := math.Float64bits(a) bb := math.Float64bits(b) diff := ba - bb if diff ..
发布时间:2020-11-08 21:37:34 其他开发

IEEE浮点标准中指数和尾数大小的基本原理是什么?

我对浮点如何工作有很好的了解,但是我想知道具体的指数和尾数大小是如何确定的.它们在某种程度上是最优的吗?如何测量浮点表示的最优性(我假设有几种方法)?我想这些问题已在官方标准中解决,但我无权访问. 解决方案 根据这次对Will Kahan的采访,它们基​​于 VAX F和时代的G格式. 当然,这并不能回答如何选择这些格式的问题... ..
发布时间:2020-11-08 21:36:28 其他开发

安静的NaN和发信号的NaN有什么区别?

我已经阅读了有关浮点的知识,并且我知道NaN可能是由操作导致的.但是我不明白这些到底是什么概念.它们之间有什么区别? 在C ++编程期间可以产生哪一个?作为程序员,我可以编写导致sNaN的程序吗? 解决方案 当一个操作导致一个安静的NaN时,直到程序检查结果并看到一个NaN,才表明存在异常.也就是说,如果在软件中实现浮点,则计算将继续进行,而不会收到来自浮点单元(FPU)或库的任何信 ..
发布时间:2020-11-08 21:31:29 其他开发

将双常量定义为十六进制?

我想使用小于1.0的最接近的数字作为浮点.通过阅读Wikipedia在 IEEE-754 上的文章,我设法找到了答案表示1.0的二进制表示形式是3FF0000000000000,因此最接近的double值实际上是0x3FEFFFFFFFFFFFFF. 我知道用此二进制数据初始化双精度的唯一方法是: double a; *((unsigned*)(&a) + 1) = 0x3FEFFFF ..
发布时间:2020-11-08 21:17:18 C/C++开发

是否可以保证A / B的两倍始终等于A / B?

我们知道,由于double的精度有限,以下两个计算可能无法给出完全相同的值: A / B / C和 A /(B * C) 我的问题是即使两个变量A& B,编译器能否保证每次A / B产生相同的值? 还是我应该在代码中询问,我们可以保证以下语句始终返回true: / p> 如果(A / B == A / B) 解决方案 对于编译器的行为保证,需要一些文档来指定行为。 ..
发布时间:2020-10-26 00:14:49 其他开发

如何查看传入的浮点数的大小?

用户将数字写到输入中,并存储在字符串中。如何检查此数字是否包含在 float 类型的大小中,还是需要 double ? p> 解决方案 除非您的浮点数很大或非常小,即超出-3.4E38到3.4E38的范围,则浮点数32将存储您扔给它的所有内容,但不包括大小。因此,真正的问题是您需要多少个有效数字以最小化舍入误差。我建议您阅读 https://www.itu.dk/~sestoft/bach ..
发布时间:2020-10-26 00:09:57 其他开发

C ++中的long double是否是IEEE的binary128的实现?

来自 https://en.wikipedia.org/wiki/Long_double : 在C ++中, long double 指的是浮点数据类型,其精度通常比double-精确。但是,与C ++的其他浮点类型一样,它不一定映射到IEEE格式。 ... 对于GNU C编译器, long double 在x86处理器上具有80位扩展精度,而与该类型所使用的物理存储无关(可以为 ..
发布时间:2020-10-26 00:04:06 C/C++开发

精度Vs的含义。双重类型范围

首先,请允许我承认我是一位经验丰富的程序员,他拥有超过10年的编程经验。但是,我要问的问题是一个问题,此后一直困扰着我,大约十年前我第一次拿起有关C的书。 下面是摘自一本关于Python的书的摘录,解释了Python Floating类型。 浮点数使用本地浮点数的 双精度(64位)表示形式 机器。通常,这是IEEE 754,它提供大约 17位的精度,并且指数在–308到 308 ..
发布时间:2020-10-25 23:59:28 其他开发

为什么python十进制库不为某些输入返回指定数量的有效数字

注意事项:该问题与“> 重要数字有关> 。 不是关于“小数点后的位数”或类似问题的问题。 编辑:这问题不是 重复的十进制模块中的有效数字。这两个问题是关于完全不同的问题。我想知道为什么函数不返回特定输入的期望值。 十进制模块中的有效数字都没有答案。 下面的函数应该返回具有指定有效位数的浮点数的字符串表示形式: 导入十进制 def to_sigfigs(value,sigfi ..
发布时间:2020-10-19 18:55:38 Python

如何以浮点形式输出IEEE-754格式整数

我有一个无符号的长整数值,它表示使用IEEE-754格式的浮点数。什么是在C ++中以浮点形式将其打印出来的最快方法是什么? 我知道一种方法,但是我想知道C ++中是否有方便的实用程序会更好? 我知道的方式示例是: 工会 { unsigned long ul; float f; } u; u.ul = 1084227584; //在十六进制中,这是0x40A00 ..
发布时间:2020-10-16 20:39:00 C/C++开发

C ==运算符如何确定两个浮点值是否相等?

今天,我追踪了为什么我的程序会出现一些意外的校验和不匹配错误,在我编写的一些代码中,该代码以包括32位校验和值的格式对IEEE-754浮点值进行了序列化和反序列化( 经过一番摸索之后,我意识到问题出在0.0f和-0.0f具有不同的位模式(分别为0x00000000和0x00000080(little-endian)),但是C ++相等运算符认为它们等效。因此,发生校验和不匹配错误是因为我的校 ..
发布时间:2020-10-06 19:24:22 其他开发