電腦算術
以單精度浮點數將1億(10⁸)加上1,結果仍維持為1億而沒有改變。關於此現象,下列說明何者正確?
- A1億無法以單精度表示,因此結果成為NaN
- B有效位數僅約7位數,1因捨入而消失
- C加法指令有省略大數計算的規定
查看答案與解析
正確答案:B. 有效位數僅約7位數,1因捨入而消失
單精度的有效數字約為7位數,在1億附近可表示的數之間的間隔為8。1億 + 1 落在兩個可表示的值之間,會被捨入至最接近的1億,因此1就消失了。像這樣在大小相差懸殊的數相加時,較小者的資訊會遺失的現象,稱為資訊遺失(捨位)。在累加大量小值時,會採取先從小的開始加、使用帶有補償的加法等方法來處理。1億是可表示的數,不會成為NaN。
- A. 1億可以單精度表示,不會成為NaN。
- B. 正確。1億附近的間隔為8,1因捨入而消失。
- C. 並不是加法指令省略了計算。