相关疑难解决方法(0)

哪个是IEEE 754浮点数无法准确表示的第一个整数?

为清楚起见,如果我使用的是实现IEE 754浮点数的语言,我声明:

float f0 = 0.f;
float f1 = 1.f;
Run Code Online (Sandbox Code Playgroud)

...然后将它们打印出来,我会得到0.0000和1.0000 - 完全正确.

但IEEE 754无法表示实线上的所有数字.接近于零,"差距"很小; 当你越走越远时,差距越来越大.

所以,我的问题是:对于一个IEEE 754浮点数,这是第一个(最接近零)整数,无法准确表示?我现在只关心32位浮点数,虽然如果有人给出它我会有兴趣听到64位的答案!

我认为这就像计算2 bits_of_mantissa并添加1 一样简单,其中bits_of_mantissa是标准公开的位数.我在我的机器(MSVC++,Win64)上为32位浮点数做了这个,但它看起来很好.

floating-point types ieee-754

152
推荐指数
2
解决办法
3万
查看次数

在双打中表示整数

一个double(给定数量的字节,具有合理的尾数/指数平衡)是否总能完全精确地保持无符号整数的范围是该字节数的一半?

例如,8字节双精度可以完全精确地保持四字节无符号整数的范围吗?

这将归结为如果两个字节的浮点数可以保持一个字节无符号整数的范围.

一个字节的无符号int当然是0 - > 255.

c math floating-point precision ieee-754

19
推荐指数
2
解决办法
6539
查看次数

可以精确表示为浮点数/双精度数的整数范围

什么是(连续的)整数的确切范围,可以表示为double(resp.浮点?)我问的原因是因为我对这样问题感到好奇,因为会发生精度损失.

那是

  1. 什么是最小正整数m,m+1不能精确表示为double(resp.浮点数)?
  2. 什么是最大的负整数-n,-n-1不能精确表示为double(resp.浮点数)?(可能与上面相同).

这意味着,每一个之间的整数-nm具有精确的浮点表示.我基本上都在寻找[-n, m]浮动和双打的范围.

我们将范围限制为标准IEEE 754 32位和64位浮点表示.我知道浮点数有24位精度,双精度数有53位(都带有隐藏的前导位),但由于浮点表示的复杂性,我正在寻找权威的答案.请不要挥手!

(理想的答案将证明,所有的整数从0m的表达,这m+1是没有的.)

c# java floating-point double integer

6
推荐指数
1
解决办法
1819
查看次数

标签 统计

floating-point ×3

ieee-754 ×2

c ×1

c# ×1

double ×1

integer ×1

java ×1

math ×1

precision ×1

types ×1