有人告诉我,doubleC++ 中的 a 有一个尾数,能够安全、准确地表示 [-(2 53 \xe2\x88\x92 1), 2 53 \xe2\x88\x92 1] 整数。
double
当尾数只有 52 位时,这怎么可能呢?为什么 anint16只能具有 [-32,768, +32,767] 或 [-2 15 , 2 15 -1] 的范围,而同样的东西可以用来int16允许两倍的可表示数字?
int16
c++ floating-point mantissa
c++ ×1
floating-point ×1
mantissa ×1