ieee-754相关内容

双精度 - 小数位

从我已经读取的数据类型double的值具有15个小数位数的近似精度。但是,当使用无理数(例如1.0 / 7.0)时,我发现该变量保存的值为0.14285714285714285 - 这是17个位置(通过调试器)。 我想知道为什么它在内部表示为17个地方,为什么15的精度总是写在〜15? 解决方案 IEEE double具有53个有效位(这是 中的DBL_MANT_ ..
发布时间:2016-10-11 22:43:38 C/C++开发

如何检查C ++编译器是否使用IEEE 754浮点标准

我想提出一个问题,这一个是很好地回答了定义检查如果编译器使用标准。但是这只是C的。有没有办法在C ++做同样的? 我不想将浮点类型转换为文本或使用一些非常复杂的转换函数。我只需要编译器检查。如果你知道这样兼容的编译器的列表,请张贴链接。我找不到它。 解决方案 实际上,你有一个更容易的方法来实现这在C ++。从标准 18.2.1.1 中, numeric_limits 类存在于 std ..
发布时间:2016-10-11 22:16:59 C/C++开发

如何测试,如果数值转换会改变的价值?

我在执行某些数据类型转换,我需要代表 UINT ,长, ULONG 和小数作为IEEE 754双浮点值。我希望能够检测如果IEEE 754数据类型不能包含值之前,我进行转换。 一个蛮力解决办法是换一个try-catch周围投翻番寻找发生OverflowException 。通过一定的 CLR文档阅读意味着一些转换只是默默的改变,没有任何异常值。 有任何万无一失的方法来做到这一点检查?我 ..
发布时间:2016-09-28 14:04:27 C#/.NET

小数点后的双精度

在午休,我们开始debatting有关双击值类型的精度。 我collegue认为,它具有小数点后总是15位。 在我看来一个人不能说,因为IEEE 754不作假设 关于这一点,它取决于其中第一个 1 是二进制 表示。 (即小数点数之前数的大小,太) 如何让更多的合格声明? 解决方案 如前所述通过的 C#参考的,精度为15至16位(取决于表示的十进制值)。精密意义小数位数 ..
发布时间:2016-09-20 21:27:19 C#/.NET

获取下一个最小的双号

作为单元测试的一部分,我需要测试一些边界条件。一种方法接受一个 System.Double 参数。 有没有办法获得的下最小的双重价值? (即1个单位价值递减尾数)? 我考虑过使用 Double.Epsilon 但这是不可靠因为它仅是从零最小的增量,因此对于较大的值不工作(即 9999999999 - Double.Epsilon == 9999999999 )。 那么,什么是需要 ..
发布时间:2016-09-07 11:34:20 C#/.NET

双打格式化输出在C#

运行到相关的快速实验是在.NET破碎双倍增?和阅读一对夫妇在C#字符串格式化的文章,我觉得这: { 双I = 10 * 0.69; Console.WriteLine(ⅰ); Console.WriteLine(的String.Format(“{0:F20}”,i)段); Console.WriteLine(的String.Format(“+ {0:F20}”, ..
发布时间:2016-08-26 15:08:03 C#/.NET

国米preting无符号32位只要C单precision IEEE-754浮点数

我使用Microchip的,它是基于标准的C编译器编译XC32 我是一个RS485网络上的阅读从一个设备一个32位的值,并在一个无符号长,我Typedef的作为DWORD储存这一点。 即 的typedef DWORD无符号长; 既然这样,当我强制转换这个数值为float,我得到的价值基本上是它的浮点版本的整数重新presentation,而不是正确的IEEE-754间preTED浮动。 ..
发布时间:2016-08-22 16:43:38 C/C++

关于IEEE 754,64位双待?

请在下面的内容看看: 我知道如何双转换为基于IEEE 754二进制,但我不明白什么公式用于 谁能给我一个例子,当我们用上述公式,好吗? 非常感谢。 解决方案 这是用红色突出显示该公式可用于计算的实数的一个64位的值,再presents如果作为一个IEEE 754双处理。如果你想手动计算从二进制它重新presents,如核实C库的实施的printf 。 例如,使用上 0x3fd5 ..
发布时间:2016-08-22 14:55:15 C/C++

你如何打印(无的printf)的IEEE754多少?

有关这个问题的目的,我做的不的必须使用的printf 设施(我不能告诉你为什么,可惜的能力,但我们只是现在假设我知道我在做什么)。 有关的IEEE754单precision号,您有以下位: SEEE EEEE EFFF FFFF FFFF FFFF FFFF FFFF 其中,取值为符号,电子是指数和˚F是小部分。 打印标志是相对容易的所有情况下,为的是抓住所有的特殊情况下,如 NaN的( ..
发布时间:2016-08-22 14:20:38 C/C++

IEEE754浮点值的便携式系列化

我最近一直在努力,需要存储和加载大量数据,包括单precision浮点值的系统上。我决定在网络字节顺序标准化整数,并决定将储存浮点值big-endian格式,即: | - 字节0 - | | - 字节1 - |字节2字节3 ################ ######## ######## 注册指数尾数 1B 8B,MSB首先23B,MSB第一 在理想情况下,我想提供像 ..
发布时间:2016-08-21 22:14:45 C/C++

IEEE - 754 - 找到signbit,指数,压裂,标准化等

我以一个8位十六进制数字作为一个IEEE 754位浮点数 我想打印有关数字(signbit,expbits,fractbits,规范化的信息, 非规范化,无穷大,零,NAN)浮点应该是单一的。 我对位移位读了,我觉得这就是我想怎么办呢?不过,我不是100%确定。据我所知,符号位在数字的最左边的位置找到。其指示正或负。多少钱,我转向它找到每个?做我还是想继续转向它来查找每一个?有人能解释如何, ..
发布时间:2016-08-21 21:55:12 C/C++开发

DO-S和鸵鸟政策-S的浮点运算?

有什么好的DO-S和鸵鸟政策-S浮点运算(IEEE754万一有混乱),以确保您的结果数值稳定性好,精度高? 我知道有几个像不减去类似的规模数量,但我​​很好奇其他良好的规则是那里的东西。 解决方案 首先,概念,即浮点数做输入不会必然遵循相同的规则为实数......一旦你有接受了这个,你就会明白最缺陷。 下面是一些规则/提示,我始终遵循: 从不浮点数比较为零或任何其他为此事(IE不 ..
发布时间:2016-08-21 20:54:14 C/C++

最快的算法来识别的最小和最大X中使双precision方程x + A == B真

在静态分析的背景下,我感兴趣的是确定的值x 在以下条件的再分支: 双X; X = ...; 如果(X + A == B) { ... A 和 B 可以被认为是双precision常数(推广到任意的前pressions是问题的最容易的部分),并且可以假设编译器遵循IEEE 754严格( FLT_EVAL_METHOD 0)。在运行时的舍入模式可被假定为至最近,甚至 如果计算有理数很便 ..
发布时间:2016-08-21 20:23:51 C/C++

如何检查是否浮动可以psented作为一个整数正是重新$ P $

我期待确定的合理有效的方式,如果一个浮点值(双击)可重新准确$ P $一个整数数据类型psented( 长 64位)。 我最初的想法是检查的指数,看它是否是 0 (或更多precisely 127 )。但是,这不会起作用,因为 2.0 将是E = M = 1 ... 所以基本上,我卡住了。我有一种感觉,我可以用位掩码做到这一点,但我只是没有得到我的头围绕如何做到这一点在这一点上。 所以,我怎 ..
发布时间:2016-08-19 13:32:33 C/C++

实施单precision师双链precision乘法

问题 对于C99编译器实现精确的IEEE 754算法,做的f的数值,除数类型浮动存在这样 F /除数!=(浮点)(F *(1.0 /除数))? 编辑:由“实施精确的IEEE 754算法”我的意思是编译器,它理所当然地FLT_EVAL_METHOD定义为0 上下文 交流编译如果所述逆本身重新presentable提供IEEE 754标准的浮点只能由一个常数由逆的单precision乘法取代的 ..
发布时间:2016-08-19 00:20:34 C/C++

最小和最大签署零

我关注下列情况下 分钟(-0.0,0.0) MAX(-0.0,0.0) minmag(-x,x)的 maxmag(-x,x)的 根据维基百科IEEE 754-2008 说,在关于MIN和MAX 最小值和最大值操作定义,但留有一定的余地,其中输入值相等,但在重新presentation不同的情况。特别是: 分(+ 0,-0)或分钟(-0,+ 0)必须出示与零值的东西,但总 ..
发布时间:2016-08-18 23:54:51 C/C++开发