在双打中表示整数

19 c math floating-point precision ieee-754

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

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

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

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

pax*_*blo 39

IEEE754 64位双精度可以表示任何32位整数,因为它有53位可用于精度,而32位整数只需要,32 :-)

对于(非IEEE754双精度)64位浮点数,精度小于32位是合理的.这将允许真正庞大的数字(由于指数),但代价是精确度.

最重要的是,如果浮点数的尾数中的精度位数多于整数中的精度位数(并且指数中的足够位用于缩放它),则可以在不损失精度的情况下表示它.


180*_*ION 7

是.保证float(或double)精确表示不需要截断的任何整数.对于double,有53位的精度,所以这足以精确地表示任何32位整数,并且在64位的整数中也是微小的(统计上说的)比例.