Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 将一个双精度值增加到下一个最接近的值?_Floating Point_Bit Manipulation_Ieee 754 - Fatal编程技术网

Floating point 将一个双精度值增加到下一个最接近的值?

Floating point 将一个双精度值增加到下一个最接近的值?,floating-point,bit-manipulation,ieee-754,Floating Point,Bit Manipulation,Ieee 754,这不是一个现实项目的问题;我只是好奇 我们可以使用递增运算符(i++)增加一个int。您可以将此操作定义为: 这会增加最接近i的变量。在这种情况下,它就是+1 但我在考虑根据IEEE 754-2008系统定义特定范围内可用的双值数量。我将能够建立一个图表,展示在某些范围内的这些数量,并看到它是如何减少的 我想应该有一种按位方式将double增加到比原始double更大的最近值 我在上面发现的是: 双精度示例 0x 3ff0 0000 0000 0000 = 1 0x 3ff0 0000 00

这不是一个现实项目的问题;我只是好奇

我们可以使用递增运算符(
i++
)增加一个
int
。您可以将此操作定义为:
这会增加最接近
i
的变量。在这种情况下,它就是+1

但我在考虑根据IEEE 754-2008系统定义特定范围内可用的双值数量。我将能够建立一个图表,展示在某些范围内的这些数量,并看到它是如何减少的

我想应该有一种按位方式将double增加到比原始double更大的最近值

我在上面发现的是:

双精度示例

0x 3ff0 0000 0000 0000   = 1
0x 3ff0 0000 0000 0001   = 1.0000000000000002, the next higher number > 1
0x 3ff0 0000 0000 0002   = 1.0000000000000004
在这里,您可以看到下一个更高的数字是通过增加二进制内容获得的。但我认为这不会持续下去,因为双重计划看起来是这样的:

我认为当所有分数位都设置为1时,应该执行其他操作以使增量最小

也许这个操作有名字?有趣的参考资料?
欢迎提供任何信息:D

谢谢

在C99里有很多朋友和朋友

如果你想手工操作,我认为用一个整数表示有效位,一个表示指数是最直接的

如果您要避免低于正常值并增加正数,则当有效值达到2时 在这里,您可以看到下一个更高的数字是通过增加二进制内容获得的。但我认为这不会持续下去,因为双重计划看起来是这样的:

[图片略去]

我认为当所有分数位都设置为1时,应该执行其他操作以使增量最小

第一个近似值是的,这确实有效


考虑一个标准化的正数:这是一个m*2e的值,其中1这个问题与所述的语言完全无关。我知道,但这样,你会接触到人们。就我个人而言,我总是看我喜欢的标签。