考慮IEEE 754-1985定義的浮點數。一個浮點數X表示如下:
在single precision中,Exponent有8 bits,Fraction有23 bits,Bias為127;在double precision中,Exponent有11 bits,Fraction有52 bits,Bias為1023。在對應的binary string中,Sign在最左邊,Exponent在中間,Fraction在最右邊。記得Exponent為0000...00與1111...11是保留值,也就是說在single precision中Exponent的範圍是1到254,在double precision中是1到2046。
下列敘述何者正確?
參考答案與解析
答案 (A)(B)(C)。(A)對:double precision最大正數的標準公式就是(2-2⁻⁵²)×2¹⁰²³(exponent全1保留,故最大可用unbiased exponent為1023)。(B)對:double precision最小normalized正數(exponent=1,fraction=0)即為2^(1-1023)=2⁻¹⁰²²。(C)對:用程式精確驗算,-0.3125在single precision下的32-bit字串確實是10111110101000000000000000000000(sign=1、exponent=01111101即125=−2+127、fraction=01000...0對應1.01₂)。(D)錯:把選項給定的位元字串00111110111000000000000000000000解碼,實際數值是0.4375,不是題目宣稱的0.875(用程式精確解碼驗證)。(E)錯:double precision最小denormalized正數應為2⁻¹⁰⁷⁴(exponent=0、fraction=最小非零值2⁻⁵²,數值=2⁻⁵²×2^(1-1023)=2⁻¹⁰⁷⁴),不是2⁻¹⁰²³(這是常見的『混淆最小denormalized與最小normalized再減1』陷阱)。