跳去內容

浮點數

出自維基百科,自由嘅百科全書

浮點數粵拼fau4 dim2 sou3英文floating point number)喺程式編寫上係種成日用嘅資料類型,指件資料表示緊一個可以係小數實數,但係記錄嘅方式係主要以二進制科學記數法,只用有限嘅有效數字來記,所以唔能夠準確咁記錄任意嘅實數。

所謂浮點係指嘅數值係因應記錄嘅實數而定,並冇一個固定嘅冪。

因為二進制唔能夠準確記錄十進制嘅小數,有啲例如 0.1 之類,喺十進制係有限小數,但係二進制之下就變成無限小數;由於浮點數只有有限嘅有效數字,呢啲數值用浮點數喺二進制之下冇可能準確記錄。

相對於浮點數嘅實數資料類型叫定點數

基本原理

[編輯]

浮點數嘅基本原理係將實數嘅數值好似科學記數法咁拆成 mantissa 同冪兩部份,記錄喺有限嘅位元入面,表示成 ,當中 ;或者拆成 sign、mantissa 同冪三部份,用一個位元記個數係正定負,然後將剩返嘅位元分畀 mantissa 同冪來用,任意一個數值就表示成 ,當中 通常係2(二進制),但係亦都有可能係其他例如10(十進制)、8(八進制)或者16(十六進制)。

例如,如果我哋有16個位元可以用,用拆開三部份嘅方法,用咗一個位元記 sign,如果用7個位元記冪,就仲有8個位元記 mantissa,再如果係用二進制,冪嘅值就限咗喺7個位元可以表示嘅整數(例如 −64 至 63),任何表示嘅實數亦都固定咗有8個(二進制嘅)有效數字。

IEEE 標準

[編輯]

目前常用嘅浮點數格式都會跟 IEEE 754 標準。喺呢個標準之下,除咗表示實數之外,浮點數亦都可以表示幾個非數值,例如 「無限大」。

睇埋

[編輯]

參考

[編輯]
  • Muller, J. M., Brisebarre, N., De Dinechin, F., Jeannerod, C. P., Lefevre, V., Melquiond, G., ... & Torres, S. (2018). Handbook of floating-point arithmetic (pp. 44-91). Basel, Switzerland:: Birkhäuser.