Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Floating point IEEE-754浮点数字舍入机制_Floating Point_Ieee 754 - Fatal编程技术网

Floating point IEEE-754浮点数字舍入机制

Floating point IEEE-754浮点数字舍入机制,floating-point,ieee-754,Floating Point,Ieee 754,这里是关于IEEE-754浮点数表示中的圆形和保护数字的问题。根据该标准,为计算保留了两个额外的数字。假设点后有两位数字可用,并且 2.3400 + 0.0256 -------- 2.3656 现在,guard是5,round是6,因为56>50,所以它四舍五入到100,因此结果是2.37 但是,如果不假设保护位和舍入位,只假设附加位在5和9之间,则将其再次舍入为10,结果为2.37 因此,我的问题是,在哪种情况下,传统的舍入机制(0到4舍入到0,5到9舍入到10)失败,而

这里是关于IEEE-754浮点数表示中的圆形和保护数字的问题。根据该标准,为计算保留了两个额外的数字。假设点后有两位数字可用,并且

   2.3400
+  0.0256
  --------
   2.3656
现在,guard是5,round是6,因为56>50,所以它四舍五入到100,因此结果是2.37

但是,如果不假设保护位和舍入位,只假设附加位在5和9之间,则将其再次舍入为10,结果为2.37


因此,我的问题是,在哪种情况下,传统的舍入机制(0到4舍入到0,5到9舍入到10)失败,而保护和舍入数字有用?

问题是IEEE舍入规则对2.3650的结果是2.36,而不是2.37。如果精确答案正好是两个可表示数字之间的一半,则四舍五入为偶数。在二进制中,即在最低有效位中有零的二进制

如果精确答案稍大于2.365,则舍入为2.37


圆位区分了这些情况。

问题是2.3650的IEEE舍入规则结果是2.36,而不是2.37。如果精确答案正好是两个可表示数字之间的一半,则四舍五入为偶数。在二进制中,即在最低有效位中有零的二进制

如果精确答案稍大于2.365,则舍入为2.37


圆形位区分了这些情况。

虽然您的问题标题是关于IEEE 745和正文IEEE 75,但您的意思似乎是指IEEE 754。就我所记得的,IEEE 754没有提到任何关于圆位和保护位的内容,因为它描述了在兼容系统上应该得到什么结果,而不是如何达到这些结果。另外,你问题的第一句是关于位的,你的例子是十进制的。你想问的问题(将“10进制中的例子”的混淆模化)可能就是我编辑这篇文章时回答的问题。这个例子来自Patterson的书(计算机体系结构:HW/SSW接口)。看起来你的意思是指IEEE 754,尽管你问题的标题是关于IEEE 745和正文IEEE 75。就我所记得的,IEEE 754没有提到任何关于圆位和保护位的内容,因为它描述了在兼容系统上应该得到什么结果,而不是如何达到这些结果。另外,你问题的第一句是关于位的,你的例子是十进制的。你想问的问题(将“10进制中的例子”的混淆模化)可能就是我编辑这篇文章时回答的问题。这个例子来自Patterson的书(计算机架构:HW/SSW接口)。