電腦算術

以單精度浮點數將1億(10⁸)加上1,結果仍維持為1億而沒有改變。關於此現象,下列說明何者正確?

  1. A1億無法以單精度表示,因此結果成為NaN
  2. B有效位數僅約7位數,1因捨入而消失
  3. C加法指令有省略大數計算的規定
查看答案與解析

正確答案:B. 有效位數僅約7位數,1因捨入而消失

單精度的有效數字約為7位數,在1億附近可表示的數之間的間隔為8。1億 + 1 落在兩個可表示的值之間,會被捨入至最接近的1億,因此1就消失了。像這樣在大小相差懸殊的數相加時,較小者的資訊會遺失的現象,稱為資訊遺失(捨位)。在累加大量小值時,會採取先從小的開始加、使用帶有補償的加法等方法來處理。1億是可表示的數,不會成為NaN。

  • A. 1億可以單精度表示,不會成為NaN。
  • B. 正確。1億附近的間隔為8,1因捨入而消失。
  • C. 並不是加法指令省略了計算。
練習這個領域 前往領域頁面

電腦算術的其他題目

  1. 在加總大量浮動小數時所使用的Kahan加法(帶補償的加法),其目的下列何者正確?
  2. 以FMA(融合乘加運算)指令計算 a × b + c 的優點,下列何者正確?
  3. bfloat16主要被用於AI訓練的理由為下列何者?
  4. 以FP16(半精度:符號1・指數部分5・尾數10位元)訓練類神經網路時容易發生問題,而以將損失值放大數倍後再計算的方法(損失縮放,loss scaling)來因應的是下列何者?
  5. FP16(符號1・指數部分5位元(偏移值15)・尾數10位元)所能表示的最大有限值是多少?